Vous devez échapper les chaînes que vous envoyez dans vos requêtes SQL.
Pour cela, vous pouvez utiliser le mysql_real_escape_string
fonction.
Par exemple, votre code pourrait ressembler à ceci (non testé, mais quelque chose comme ça devrait faire l'affaire) :
$str = "abcd'efh";
$sql_query = "insert into my_table (my_field) values ('"
. mysql_real_escape_string($str)
. "')";
$result = mysql_query($sql_query);
Une autre solution (nécessitera plus de travail, car vous devrez modifier plus de code) serait d'utiliser des déclarations préparées; soit avec mysqli_*
ou AOP
-- mais impossible avec l'ancien mysql_*
extension.
Modifier : si cela ne fonctionne pas, pouvez-vous éditer votre question, pour nous donner plus d'informations ? Comme le morceau de code qui provoque l'erreur ?