Mysql error
Hallo,
Ik ben een aanmeldingssysteem aan het maken, waarvan nu de activeer-je-account pagina komt. Maar ik heb een error op mn pad gevonden, die ik niet echt begrijp.
Er ging iets fout met de query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' ' at line 1
Dit is mijn code:
Dit is lijn 60 t/m 76 (let alsjeblieft niet op hoe ik het script, ik ben namelijk een beginner). Ik begrijp dus niet wat er fout gaat. Dit is de pagina bevestigen.php?accept=true&id=1 voor de duidelijkheid. Het kan dus niet liggen aan het feit dat er geen id enzo is ingevuld. Wat dan?
Alvast bedankt.
Mike vd Veer,
Ik ben een aanmeldingssysteem aan het maken, waarvan nu de activeer-je-account pagina komt. Maar ik heb een error op mn pad gevonden, die ik niet echt begrijp.
Er ging iets fout met de query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' ' at line 1
Dit is mijn code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
include('connect.php');
// eerst verwerken
if (empty($_GET['id']) == false && empty($_GET['accept']) == false) {
$sQuery = "UPDATE teams SET accepted = 3 WHERE id = " . $_GET['id'] . " AND
accepted IS NULL";
If (mysql_query($sQuery) == false) {
echo("Er ging iets fout met de query: ".mysql_error()."<br>");
}elseif(mysql_num_rows($sQuery) == 0){
echo("Dit team heeft zijn/haar emailadres al geactiveerd. ");
}else{
echo "Gelukt!!!!<br>";
}
}
?>
include('connect.php');
// eerst verwerken
if (empty($_GET['id']) == false && empty($_GET['accept']) == false) {
$sQuery = "UPDATE teams SET accepted = 3 WHERE id = " . $_GET['id'] . " AND
accepted IS NULL";
If (mysql_query($sQuery) == false) {
echo("Er ging iets fout met de query: ".mysql_error()."<br>");
}elseif(mysql_num_rows($sQuery) == 0){
echo("Dit team heeft zijn/haar emailadres al geactiveerd. ");
}else{
echo "Gelukt!!!!<br>";
}
}
?>
Dit is lijn 60 t/m 76 (let alsjeblieft niet op hoe ik het script, ik ben namelijk een beginner). Ik begrijp dus niet wat er fout gaat. Dit is de pagina bevestigen.php?accept=true&id=1 voor de duidelijkheid. Het kan dus niet liggen aan het feit dat er geen id enzo is ingevuld. Wat dan?
Alvast bedankt.
Mike vd Veer,
eerst een where clausule met "=" en de 2e doe je met "IS" ?... ik weet niet of dat mag van mysql...denk (verrassend genoeg) van niet
IS NULL is een correcte syntax, niks mis mee. Maar echo de query eens, dan krijgen we te zien hoe deze er nu daadwerkelijk uitziet.
Daarnaast mag de GET niet zomaar in de SQL terechtkomen, die zul je wel moeten beveiligen, bv. met mysql_real_escape_string().
mysql_num_rows() is niet op zijn plaats, die gebruik je na een SELECT-query. Jij hebt de functie mysql_affected_rows() nodig, die kijkt hoeveel rijen er zijn geraakt door de UPDATE-query.
Ps. Echo is geen functie, de haakjes () horen daar dus niet te staan.
Daarnaast mag de GET niet zomaar in de SQL terechtkomen, die zul je wel moeten beveiligen, bv. met mysql_real_escape_string().
mysql_num_rows() is niet op zijn plaats, die gebruik je na een SELECT-query. Jij hebt de functie mysql_affected_rows() nodig, die kijkt hoeveel rijen er zijn geraakt door de UPDATE-query.
Ps. Echo is geen functie, de haakjes () horen daar dus niet te staan.
Nu heb ik dit als script:
Maar ik krijg deze error:
Er ging iets fout met de query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
include('connect.php');
// eerst verwerken
if (empty($_GET['id']) == false && empty($_GET['accept']) == false) {
$sQuery = "UPDATE teams SET accepted = 3 WHERE id = " . (mysql_real_escape_string($_GET['id'])) . " AND
accepted IS NULL";
$result = mysql_query($sQuery) or die (mysql_error());
If (mysql_query($result) == false) {
echo "Er ging iets fout met de query: ".mysql_error()."<br>";
}elseif(mysql_affected_rows($result) == 0){
echo "Dit team heeft zijn/haar emailadres al geactiveerd. ";
}else{
echo "Gelukt!!!!<br>";
}
}
?>
include('connect.php');
// eerst verwerken
if (empty($_GET['id']) == false && empty($_GET['accept']) == false) {
$sQuery = "UPDATE teams SET accepted = 3 WHERE id = " . (mysql_real_escape_string($_GET['id'])) . " AND
accepted IS NULL";
$result = mysql_query($sQuery) or die (mysql_error());
If (mysql_query($result) == false) {
echo "Er ging iets fout met de query: ".mysql_error()."<br>";
}elseif(mysql_affected_rows($result) == 0){
echo "Dit team heeft zijn/haar emailadres al geactiveerd. ";
}else{
echo "Gelukt!!!!<br>";
}
}
?>
Maar ik krijg deze error:
Er ging iets fout met de query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1
Echo de query eens, dan wordt een stuk duidelijker waar het nu over gaat. Met alleen de foutmelding weet je nog steeds niet hoe de query er nu uitziet.
Welk veld type heeft je id?
Kijk eens naar regel 9 in de laatste versie van je script:
moet zijn
moet zijn




