Error in SQL syntax
als ik in een php script iets wil wijzigen en op opslaan klik dan krijg ik deze foutmelding:
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 '='Dr.' , Voornaam='Rudolf' , Tussenv='van' , Voorletters='R.', ' at line 3
Wie weet wat dit betekent, ik heb al het een en ander gezocht maar ik kom er niet uit.
Wie kan mij helpen?
Laats eens het stukje code zien waar de genoemde query in staat.
Gewoon kopiëren en plakken.
Zou een gereserveerd woord kunnen zijn. http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html
maar best zou je de hele query bij de foutmelding moeten printen en niet alleen de foutmelding
PS. Ik hoop dat de volledige SQL query deel van je code is?
Gewijzigd op 24/02/2014 13:42:34 door Dos Moonen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
session_start();
ini_set('display_errors', 1);
//error_reporting(E_ALL | E_STRICT);
include ("Clef.php");
include 'test/passcode.php';
$in = $_SESSION['sleutel'];
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{ //kijken of het formulier gepost is
1e open {
$Titel = $_POST['TI'];
$Voornaam = $_POST['VN'];
$Tussenv= $_POST['TV'];
$Voorletters = $_POST['AH'];
$Achternaam = $_POST['AN'];
$Geslacht = $_POST['GS'];
$Gebdatum = $_POST['GD'];
$Overldatum = $_POST['OD'];
$Opmerking =$_POST['OPM'];
//-------------------------------------------------------
mysql_query("UPDATE komponisten
Titel='$Titel' ,
Voornaam='$Voornaam' ,
Tussenv='$Tussenv' ,
Voorletters='$Voorletters',
Achternaam='$Achternaam' ,
Geslacht='$Geslacht' ,
Gebortedatum='$Gebdatum' ,
Overlijdingsdatum='$Overldatum',
Opmerking='$Opmerking'
WHERE ID='$in'") or die("Oeps " . mysql_error());
//-----------------------------------------------------------
//-------------------------------------------------------
$Inlognaam = $Logincode;
$Functie = "DOCENT";
$New = $_SESSION['NewLog'];
$New = trim($New);
if ($New == "New")
{
$_SESSION["NewLog"] = "";
mysql_query("INSERT INTO Gebruikers (Inlognaam,Password,Functie) VALUES ('" . $Inlognaam . "',
AES_ENCRYPT('$Password','$passcode'), '" . $Functie . "')") or die(mysql_error());
} else
{
if(!empty($Password))
{
mysql_query("UPDATE Gebruikers SET Inlognaam='$Inlognaam',
Password=AES_ENCRYPT('$Password','$passcode') , Functie=' $Functie' WHERE Inlognaam='$Inlognaam'")
or die("Oeps " . mysql_error());
}
}
}
?>
<script type="text/javascript">
top.location.href = 'testzoekkomponist.php';
</script>
session_start();
ini_set('display_errors', 1);
//error_reporting(E_ALL | E_STRICT);
include ("Clef.php");
include 'test/passcode.php';
$in = $_SESSION['sleutel'];
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{ //kijken of het formulier gepost is
1e open {
$Titel = $_POST['TI'];
$Voornaam = $_POST['VN'];
$Tussenv= $_POST['TV'];
$Voorletters = $_POST['AH'];
$Achternaam = $_POST['AN'];
$Geslacht = $_POST['GS'];
$Gebdatum = $_POST['GD'];
$Overldatum = $_POST['OD'];
$Opmerking =$_POST['OPM'];
//-------------------------------------------------------
mysql_query("UPDATE komponisten
Titel='$Titel' ,
Voornaam='$Voornaam' ,
Tussenv='$Tussenv' ,
Voorletters='$Voorletters',
Achternaam='$Achternaam' ,
Geslacht='$Geslacht' ,
Gebortedatum='$Gebdatum' ,
Overlijdingsdatum='$Overldatum',
Opmerking='$Opmerking'
WHERE ID='$in'") or die("Oeps " . mysql_error());
//-----------------------------------------------------------
//-------------------------------------------------------
$Inlognaam = $Logincode;
$Functie = "DOCENT";
$New = $_SESSION['NewLog'];
$New = trim($New);
if ($New == "New")
{
$_SESSION["NewLog"] = "";
mysql_query("INSERT INTO Gebruikers (Inlognaam,Password,Functie) VALUES ('" . $Inlognaam . "',
AES_ENCRYPT('$Password','$passcode'), '" . $Functie . "')") or die(mysql_error());
} else
{
if(!empty($Password))
{
mysql_query("UPDATE Gebruikers SET Inlognaam='$Inlognaam',
Password=AES_ENCRYPT('$Password','$passcode') , Functie=' $Functie' WHERE Inlognaam='$Inlognaam'")
or die("Oeps " . mysql_error());
}
}
}
?>
<script type="text/javascript">
top.location.href = 'testzoekkomponist.php';
</script>
Het is de eerste keer dat ik hier code neerzet, ik hoop dat het goed wordt weergeven.
op regel 58 zou ik de spatie voor $functie verwijderen.
Verder: http://wiki.pfz.nl/sqlinjectie
Gewijzigd op 24/02/2014 14:28:29 door Ivo P
Anyway, @TS, het probleem is dat je UDPATE statement gewoon niet klopt. Het SET keyword ontbreekt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
mysql_query("UPDATE komponisten
Titel='$Titel' ,
Voornaam='$Voornaam' ,
Tussenv='$Tussenv' ,
Voorletters='$Voorletters',
Achternaam='$Achternaam' ,
Geslacht='$Geslacht' ,
Gebortedatum='$Gebdatum' ,
Overlijdingsdatum='$Overldatum',
Opmerking='$Opmerking'
WHERE ID='$in'")
?>
mysql_query("UPDATE komponisten
Titel='$Titel' ,
Voornaam='$Voornaam' ,
Tussenv='$Tussenv' ,
Voorletters='$Voorletters',
Achternaam='$Achternaam' ,
Geslacht='$Geslacht' ,
Gebortedatum='$Gebdatum' ,
Overlijdingsdatum='$Overldatum',
Opmerking='$Opmerking'
WHERE ID='$in'")
?>
Moet zijn:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
mysql_query("UPDATE komponisten
SET
Titel='$Titel' ,
Voornaam='$Voornaam' ,
Tussenv='$Tussenv' ,
Voorletters='$Voorletters',
Achternaam='$Achternaam' ,
Geslacht='$Geslacht' ,
Gebortedatum='$Gebdatum' ,
Overlijdingsdatum='$Overldatum',
Opmerking='$Opmerking'
WHERE ID='$in'")
?>
mysql_query("UPDATE komponisten
SET
Titel='$Titel' ,
Voornaam='$Voornaam' ,
Tussenv='$Tussenv' ,
Voorletters='$Voorletters',
Achternaam='$Achternaam' ,
Geslacht='$Geslacht' ,
Gebortedatum='$Gebdatum' ,
Overlijdingsdatum='$Overldatum',
Opmerking='$Opmerking'
WHERE ID='$in'")
?>
Super bedankt allemaal!!!!
http://wiki.pfz.nl/sqlinjectie
dat voorkomt problemen met namen waarin een ' zit. Bijvoorbeeld 's-Hertogenbosch
of bewuste pogingen tot hackeen.
---
De melding is trouwens "near ='Dr.'"
Dus als de kolomnaam bijvoorbeeld SUM is, dan zou mysql best eens bij de "=" kunnen gaan hikken over het niet aantreffen van een ( na de functienaam SUM
Gewijzigd op 24/02/2014 14:35:21 door Ivo P