error in your SQL syntax

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

U Zeeman

U Zeeman

14/12/2012 09:47:57
Quote Anchor link
Ik heb even jullie hulp nodig.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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
                     {
        ?>
 
PHP hulp

PHP hulp

16/01/2025 21:07:03
 
No One

No One

14/12/2012 09:49:59
Quote Anchor link
echo de query eens? het lijkt er op dat een van die variabelen leeg is :)
 
Kris Peeters

Kris Peeters

14/12/2012 09:59:56
Quote Anchor link
Wat is dit? Wat is hier de bedoeling van?
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.