Você precisa escapar das strings que está enviando em suas consultas SQL.
Para isso, você pode usar o
mysql_real_escape_string
função. Por exemplo, seu código pode ficar assim (não testado, mas algo assim deve funcionar) :
$str = "abcd'efh";
$sql_query = "insert into my_table (my_field) values ('"
. mysql_real_escape_string($str)
. "')";
$result = mysql_query($sql_query);
Outra solução (No entanto, exigirá mais trabalho, pois você terá que alterar mais código) seria usar declarações preparadas; seja com
mysqli_*
ou PDO
-- mas não é possível com o antigo mysql_*
extensão. Editar: se isso não funcionar, você pode editar sua pergunta, para nos dar mais informações? Como o pedaço de código que causa o erro?