Problemen bij database update functie
Ik heb een lijst met gegevens uit de database. Als ik op de knop bewerk druk krijg ik een nieuwe pagina met de juiste gegevens en de mogelijkheid om deze aan te passen. Zover gaat alles dus goed. Maar als ik dan de info wil wijzigen door op de knop wijzigen te drukken, krijg ik dit bericht:
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 'WHERE id = 1' at line 2
Weet iemand waar ik hier naar moet kijken?
code van de bewerk pagina:
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
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
<?php
// string om contact te maken met de databse
$connect = mysql_connect("localhost", "jeroen", "ww");
// geef foutmelding als er geen contact gemaakt kan worden
if (!$connect) {
die('Kon geen contact maken met de database: ' . mysql_error());
}
// selecteer database en maak contact met de string
mysql_select_db("gastenboek", $connect);
$done = false;
// prepare an array of expected items
$expected = array('naam', 'plaats', 'email', 'bericht', 'id');
if ($_GET && !$_POST) {
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = $_GET['id'];
}
else {
$id = NULL;
}
if ($id) {
$sql = "SELECT * FROM berichten WHERE id = $id";
$result = mysql_query($sql) or die (mysql_error());
$row = mysql_fetch_assoc($result);
}
}
if (array_key_exists('toevoegen', $_POST)) {
// prepare expected items for insertion in to database
foreach ($_POST as $key => $value) {
if (in_array($key, $expected)) {
${$key} = mysql_real_escape_string($value);
}
}
// abandon the process if primary key invalid
if (!is_numeric($id)) {
die('Invalid request');
}
// prepare the SQL query
$sql = "UPDATE berichten SET naam = '$naam', plaats = '$plaats', email = '$email', bericht = '$bericht',
WHERE id = $id";
// submit the query and redirect if successful
$done = mysql_query($sql) or die(mysql_error());
}
// redirect page on success or if $article_id is invalid
if ($done || !isset($id)) {
header('Location: http://localhost:8888Oefenbestanden Mac/Les DreamweaverCS5 PHP/PHP_intro/gastenboek/admin.php');
exit;
}
?>
// string om contact te maken met de databse
$connect = mysql_connect("localhost", "jeroen", "ww");
// geef foutmelding als er geen contact gemaakt kan worden
if (!$connect) {
die('Kon geen contact maken met de database: ' . mysql_error());
}
// selecteer database en maak contact met de string
mysql_select_db("gastenboek", $connect);
$done = false;
// prepare an array of expected items
$expected = array('naam', 'plaats', 'email', 'bericht', 'id');
if ($_GET && !$_POST) {
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = $_GET['id'];
}
else {
$id = NULL;
}
if ($id) {
$sql = "SELECT * FROM berichten WHERE id = $id";
$result = mysql_query($sql) or die (mysql_error());
$row = mysql_fetch_assoc($result);
}
}
if (array_key_exists('toevoegen', $_POST)) {
// prepare expected items for insertion in to database
foreach ($_POST as $key => $value) {
if (in_array($key, $expected)) {
${$key} = mysql_real_escape_string($value);
}
}
// abandon the process if primary key invalid
if (!is_numeric($id)) {
die('Invalid request');
}
// prepare the SQL query
$sql = "UPDATE berichten SET naam = '$naam', plaats = '$plaats', email = '$email', bericht = '$bericht',
WHERE id = $id";
// submit the query and redirect if successful
$done = mysql_query($sql) or die(mysql_error());
}
// redirect page on success or if $article_id is invalid
if ($done || !isset($id)) {
header('Location: http://localhost:8888Oefenbestanden Mac/Les DreamweaverCS5 PHP/PHP_intro/gastenboek/admin.php');
exit;
}
?>
<form action="change.php" method="post">
naam:
<input type="text" name="naam" value="" /><br />
plaats:
<input type="text" name="plaats" value="" /><br />
email:
<input type="text" name="email" value="" /><br />
bericht:
<input type="text" name="bericht" value="" /><br />
<input type="submit" name="toevoegen" value="Bewerk!" />
<input name="id" type="hidden" value="" />
</form>
Toevoeging op 19/06/2011 19:30:12:
btw het kan ook regel 25 zijn
in de string stond een ,
Toen ik deze verwijderde werkte de code wel.
van:
"UPDATE berichten SET naam = '$naam', plaats = '$plaats', email = '$email', bericht = '$bericht', WHERE id = $id";
in:
"UPDATE berichten SET naam = '$naam', plaats = '$plaats', email = '$email', bericht = '$bericht' WHERE id = $id";