Hallo,
Ik heb een probleem dat jullie waarschijnlijk heel simpel weten op te lossen, ik heb namelijk volgende code:

$sql = 'SELECT bericht FROM pb WHERE PID="'.$_GET['id'].'"';
                        $resultaat = mysql_query($sql) OR die('Er liep iets fout, blijft dit voorkomen? Neem dan contact op met ons.');
                        $bericht = mysql_result($resultaat, 0);
                        $bericht = '"'.$_POST['content'].'" <br /><hr><br /> <center><b>"'.$gebruiker.'"</b></center> <br /> "'.$bericht.'"';
                        $sql = 'INSERT INTO pb(van, voor, titel, bericht, datum) VALUES ("'.$gebruikersnaam.'", "'.$gebruiker.'", "'.$bericht.'", NOW())';
                        $resultaat = mysql_query($sql) OR die('Er liep iets fout, blijft dit voorkomen? Neem dan contact op met ons.<br />'.mysql_error());


Echter loopt hij vast op de laatste query met 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 'test"

"kristof"

"te tete tete te' at line 1

Waarbij dit de waarden zijn:
$bericht = te tete tete tete tete tete tete tete tete tete tete tete tete tete tete tete tete tete tete te
(dit is vlak na de uitvoering van de query het resultaat, zoals je ziet een simpel testbericht dat in de database staat)
$_POST['content'] = test
$gebruiker = kristof
$gebruikersnaam = kristof
(om te testen zend ik een bericht met zender en ontvanger hetzelfde)
Ik hoop dat ik jullie genoeg informatie geef.

Ik weet dat or die geen goede foutafhandeling is, maar het is uiteraard niet eens de bedoeling dat er fouten in het script kunnen voorkomen waarbij later foutafhandeling overbodig zou zijn.

Ook weet ik dat mysqli de momentele goede mysql is, maar zoals je ziet gebruik ik nog steeds liever mysql, neem het als een eigen smaak.
Uiteraard, indien 1 van de 2 punten hierboven vermeld het probleem kunnen oplossen (wat ik betwijfel) ben ik wel bereid dit aan te passen.
<?php

// draai ' en " eens om :-)
$sql = "SELECT bericht FROM pb WHERE PID='".$_GET['id']."'";
?>
De tweede ook inderdaad. Mysql wil string- en datum variabelen graag tussen single quotes zien

[size=xsmall]Toevoeging op 11/10/2013 21:05:33:[/size]

INSERT INTO pb(van, voor, titel, bericht, datum) dat zijn vijf velden. en je geeft maar vier waarden
Ehm, eerlijk gezegt denk ik ook dat het probleem in je $bericht staat en je mist 1 waarde om in te vullen, zoals Frank al zegt, maar dat zal niet de reden zijn van de error die je op dit moment krijgt.

Je hebt " " in het bericht, deze zullen voor problemen zorgen in je insert query.
ik zou deze of weg laten, of omzetten naar ascii code zodat deze geen problemen kan veroorzaken met je query's
he, goed punt, ik heb gewoon het veld titel vergeten xd

Die dubbele haakjes zitten normaal niet in het bericht dacht ik, even kijken ;)

Ik had daarstraks iets aangepast waardoor ik inderdaad een andere error kreeg die ging over het veld te weinig, terug uitzoeken wat k daar aangepast had, want dat zou betekenen dat daarmee alles wel opgelost was.

Ik heb het probleem gevonden, de " was overal overbodig xd

$bericht = '"'.$_POST['content'].'" ..........


Hier heb ik het over, dat je er dubbele haakjes omzet die je zo direct in je query verwerkt.
excuses, ik las het bericht even verkeerd, dat was inderdaad mijn fout ;)

Reageren