Du måste undkomma strängarna du skickar i dina SQL-frågor.
För det kan du använda mysql_real_escape_string
funktion.
Till exempel kan din kod se ut så här (inte testad, men något sådant här borde göra susen) :
$str = "abcd'efh";
$sql_query = "insert into my_table (my_field) values ('"
. mysql_real_escape_string($str)
. "')";
$result = mysql_query($sql_query);
En annan lösning (Kräver dock mer arbete eftersom du måste ändra mer kod) skulle vara att använda förberedda uttalanden; antingen med mysqli_*
eller PDO
-- men inte möjligt med den gamla mysql_*
förlängning.
Redigera: Om detta inte fungerar, kan du redigera din fråga för att ge oss mer information? Som kodbiten som orsakar felet?