Php & MySQL error...
Ik krijg de volgende errors bij mijn php script dat MySQL data zou moeten updaten...
Error: 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 '(title, descr, categorie, cost, author, demo, authorlink, featured) VALUES ('Rai' at line 1
edit_template_code.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include '../config.php';
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
$nr = $_POST['number'];
$sql="UPDATE template SET (title, descr, categorie, cost, author, demo, authorlink, featured)
VALUES
('$_POST[title]','$_POST[descr]','$_POST[categorie]','$_POST[cost]','$_POST[author]','$_POST[demo]','$_POST[authorlink]','$_POST[featured]') WHERE id = $nr";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Template Updated!!";
mysql_close($con)
?>
include '../config.php';
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
$nr = $_POST['number'];
$sql="UPDATE template SET (title, descr, categorie, cost, author, demo, authorlink, featured)
VALUES
('$_POST[title]','$_POST[descr]','$_POST[categorie]','$_POST[cost]','$_POST[author]','$_POST[demo]','$_POST[authorlink]','$_POST[featured]') WHERE id = $nr";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Template Updated!!";
mysql_close($con)
?>
Iemand raad?
Jelle
Gewijzigd op 01/01/1970 01:00:00 door Jelle Sturm
buiten quotes halen van je variabelen. Plaats vervolgens deze regels aan het begin van je script:
En los dan de fouten op die gegeven worden.
Om te beginnen hoort $_POST[number] namelijk $_POST['number'] te zijn (let op de quotes), 'number' is immers een string en geen constante. Zie ook de eerste foutmelding die je krijgt...
Echo tenslotte als er een fout opstreedt in je query, ook altijd de query die je uitgevoerd hebt. Dan zie je wat er uiteindelijk naar de database gegaan is en wellicht ook al direct waar het fout gaat.
Begin allereerst met het En los dan de fouten op die gegeven worden.
Om te beginnen hoort $_POST[number] namelijk $_POST['number'] te zijn (let op de quotes), 'number' is immers een string en geen constante. Zie ook de eerste foutmelding die je krijgt...
Echo tenslotte als er een fout opstreedt in je query, ook altijd de query die je uitgevoerd hebt. Dan zie je wat er uiteindelijk naar de database gegaan is en wellicht ook al direct waar het fout gaat.
Die variabele $nr heb ik nu opgelost en die eerste error is weg.
Er moet iets fout zitten in de MySQL code by $sql maar ik weet niet wat...
Jelle schreef op 27.01.2009 12:52:
Jij stuurt toch wel degelijk een sql query naar de database om uitgevoerd te worden...Er gaat niets naar de database^^
Echo die query dus ook eens als er wat fout gaat bij het uitvoeren ervan. En doe tevens wat met de andere punten die ik in mijn vorige post noemde.
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
<?php
include '../config.php';
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
$nr = $_POST['number'];
$sql="UPDATE template SET title = '$_POST[title]', descr = '$_POST[descr]', categorie = '$_POST[categorie]', cost = '$_POST[cost]', author = '$_POST[author]', demo = '$_POST[demo]', authorlink = '$_POST[authorlink]', featured = '$_POST[featured]' WHERE id = $nr";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
header ("location: edit_template.php?id=$nr&update=true");
mysql_close($con)
?>
include '../config.php';
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
$nr = $_POST['number'];
$sql="UPDATE template SET title = '$_POST[title]', descr = '$_POST[descr]', categorie = '$_POST[categorie]', cost = '$_POST[cost]', author = '$_POST[author]', demo = '$_POST[demo]', authorlink = '$_POST[authorlink]', featured = '$_POST[featured]' WHERE id = $nr";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
header ("location: edit_template.php?id=$nr&update=true");
mysql_close($con)
?>
Tx voor je reacties!
Dat is dan ook de enige juiste syntax voor een UPDATE query. Nu enkel nog die variabelen buiten quotes halen, dan ziet het er alweer een stuk beter uit...
'$_POST[title]' <- deze?
Jelle schreef op 27.01.2009 13:46:
Zie de link in mijn eerste post, daarin staat het hoe en waarom uitgelegd.^^Hoe bedoel je variables buiten quotes halen?
Het moge duidelijk zijn dat ik doel op de variabelen in je query ;-)