Devi evitare le stringhe che stai inviando nelle tue query SQL.
Per questo, puoi usare mysql_real_escape_string
funzione.
Ad esempio, il tuo codice potrebbe assomigliare a questo (non testato, ma qualcosa del genere dovrebbe fare il trucco) :
$str = "abcd'efh";
$sql_query = "insert into my_table (my_field) values ('"
. mysql_real_escape_string($str)
. "')";
$result = mysql_query($sql_query);
Un'altra soluzione (ma richiederà più lavoro, poiché dovrai modificare più codice) sarebbe usare dichiarazioni preparate; sia con mysqli_*
o DOP
-- ma non è possibile con il vecchio mysql_*
estensione.
Modifica : se questo non funziona, puoi modificare la tua domanda, per darci maggiori informazioni? Come il pezzo di codice che causa l'errore?