error in your SQL syntax
telkens als ik een ' invoer in een tekstveld krijg ik de volgende 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 '''', '')' at line 1
Het is een super simpel en kleine agenda script
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
if(isset($_POST['verzenden']))
{
$datum = htmlspecialchars($_POST['datum']);
$omschr = htmlspecialchars($_POST['omschr']);
$link = htmlspecialchars($_POST['link']);
mysql_query($insert_ip);
mysql_query("INSERT INTO data (datum, omschr, link) VALUES ('".$datum."', '".$omschr."', '".$link."')") or die (mysql_error());
echo '<center><h2>Succesvol toegevoegd</h2><a href="index.php" class="link">Terug naar overzicht</a><P></center>';
}
else
{
?>
if(isset($_POST['verzenden']))
{
$datum = htmlspecialchars($_POST['datum']);
$omschr = htmlspecialchars($_POST['omschr']);
$link = htmlspecialchars($_POST['link']);
mysql_query($insert_ip);
mysql_query("INSERT INTO data (datum, omschr, link) VALUES ('".$datum."', '".$omschr."', '".$link."')") or die (mysql_error());
echo '<center><h2>Succesvol toegevoegd</h2><a href="index.php" class="link">Terug naar overzicht</a><P></center>';
}
else
{
?>
echo de query eens? het lijkt er op dat een van die variabelen leeg is :)
mysql_query($insert_ip);
Weet je zelf trouwens bij welk van de twee mysql_query's het fout loopt?
Zoals je op php.net kan lezen:
Quote:
For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.
De functie geeft een true of false terug; dus je kan dit opvangen.
$query1_geslaagd = mysql_query($insert_ip);
$query2_geslaagd = mysql_query("INSERT INTO data ...
Dan kan je ten minste achterhalen waar de fout zit.
-----
Zoals hier boven is vermeld: echo de sql-string.
Test uit wat dit geeft
Code (php)
1
2
3
2
3
<?php
echo "INSERT INTO data (datum, omschr, link) VALUES ('".$datum."', '".$omschr."', '".$link."')";
?>
echo "INSERT INTO data (datum, omschr, link) VALUES ('".$datum."', '".$omschr."', '".$link."')";
?>
Copy/paste dit dan in phpMyadmin. Daar krijg je een meer uitgebreide error reporting.
----
$datum = htmlspecialchars($_POST['datum']);
htmlspecialchars staat hier niet op zijn plaats. Daar dient die functie niet voor.
Vooraleer je een variabele in een sql-string wil integreren, haal je ze door mysql_real_escape_string(); niet door htmlspecialchars().
htmlspecialchars hebruik je enkel bij een SELECT. Niet bij een INSERT
Kijk eventueel hier eens, naar een post die ik juist plaatste: http://www.phphulp.nl/php/forum/topic/record-kiezen/88110/1/#632008
Gewijzigd op 14/12/2012 11:51:38 door Kris Peeters