Ik heb een scriptje dat via een form teksten naar de database schrijft. Alleen wanneer iki het aanhalingsteken ' gebruik dan krijg ik de volgende foutmelding:
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 'cxv','vvx')' at line 2

wie weet wat ik kan doen zodat ik toch een aanhalingsteken in de tekst kan gebruiken?
Oke maar hoe kan ik die dan toevoegen? Dit is mn script:

<?php
include ('db.php');

if (isset($_POST['submit'])) {

if ($titel_nl == "")
$error="Je moet de nederlandse titel invullen!";
if ($bericht_nl == "")
$error="Je moet de nederlandse content invullen!";
if ($titel_eng == "")
$error="Je moet de engelse titel invullen!";
if ($bericht_eng == "")
$error="Je moet de engelse content invullen!";

if (!$error) {

$query = "INSERT INTO content (titel_nl,bericht_nl,titel_eng,bericht_eng)
VALUES ('$titel_nl','$bericht_nl','$titel_eng','$bericht_eng')";


mysql_query($query) or die (mysql_error());
?> <div align="center"> <table width="39%" border="1" cellspacing="3" cellpadding="2" bordercolor="#999999" bgcolor="#666666"> <tr> <td height="22" bgcolor="#999999"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><b>Seminar toevoegen: </b></font></td> </tr> <tr> <td height="46" bgcolor="#CCCCCC"> <div align="left"><font face="Arial, Helvetica, sans-serif" size="-1">De seminar is <b>succesvol</b> toegevoegd!</font></div> </td> </tr> <tr> <td height="21" bgcolor="#999999"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1">[ Terug naar <a href="admin.php">nieuws</a> ]</font></div> </td> </tr> </table> </div> <?php
} elseif ($error) {
?> <div align="center"> <table width="39%" border="1" cellspacing="3" cellpadding="2" bordercolor="#999999" bgcolor="#666666"> <tr> <td height="22" bgcolor="#999999"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><b>Seminar toevoegen: </b></font> </td> </tr> <tr> <td height="23" bgcolor="#CCCCCC"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="97%"> <font face="Arial" color="red" size="-1"><b>Error:</b> <?php echo"$error"; ?> </font> </td> <td width="3%"> <div align="right"> <input onClick="javascript:history.go(-1);" type="button" name="Button" value="Terug"> </div> </td> </tr> </table> </td> </tr> </table> </div> <?php
}
} else {
?>

<div align="center"><form action="" method="post">


Titel nederlands<input type="text" name="titel_nl" size="60"> <br>

Content nederlands<textarea name="bericht_nl" cols="100" rows="30" wrap="soft"></textarea> <br><p></p>

Titel engels<input type="text" name="titel_eng" size="60"><br>

Content engels<textarea name="bericht_eng"cols="100" rows="30" wrap="soft"></textarea> <br><p></p>



<input type="submit" value="Post nieuws" name="submit">
<input type="reset" value="Wis velden" name="reset">
<input type="button" value="Terug naar nieuws" onClick="window.location='toevoegen.php' " name="button">


</form> </div>

<?php } ?>
Zorg eerst eens dat je variabelen buiten quotes staan, veel netter ;)

<?php
$query = "INSERT INTO content (titel_nl,bericht_nl,titel_eng,bericht_eng)
VALUES ('".$titel_nl."','".$bericht_nl."','".$titel_eng."','".$bericht_eng."')";
?>

om het dan te beveiligen moet je dan tegen mysql injection (dus je sql ombouwen door de user input zodat er vervelende dingen gebreuren) gebruik je mysql_real_escape_string()

<?php
$query = "
INSERT INTO
content (
titel_nl,
bericht_nl,
titel_eng,
bericht_eng
) VALUES(
'".mysql_real_escape_string($titel_nl)."',
'".mysql_real_escape_string($bericht_nl)."',
'".mysql_real_escape_string($titel_eng)."',
'".mysql_real_escape_string($bericht_eng)."'
)";
?>

RTFM.. :) die link leid naar de handleiding daar staat hoe je het moet toepassen
Ja, probeer phphulp te gebruiken als je gewoon er echt niet uitkomt maar gebruik php.net om de functie documentatie door te nemen waar tevens vaak ook nog voorbeelden staan, ik heb in mijn hele progressie eerder 90% gebruik gemaakt van php.net dan welke php forum dan ook, laat staan dat ik boeken over php heb.





dank

Reageren