Debe escapar de las cadenas que está enviando en sus consultas SQL.
Para eso, puede usar mysql_real_escape_string
función.
Por ejemplo, su código podría verse así (no probado, pero algo como esto debería funcionar) :
$str = "abcd'efh";
$sql_query = "insert into my_table (my_field) values ('"
. mysql_real_escape_string($str)
. "')";
$result = mysql_query($sql_query);
Otra solución (Sin embargo, requerirá más trabajo, ya que tendrá que cambiar más código) sería utilizar sentencias preparadas; ya sea con mysqli_*
o PDO
-- pero no es posible con el antiguo mysql_*
extensión.
Editar: si esto no funciona, ¿puedes editar tu pregunta para darnos más información? ¿Te gusta el fragmento de código que causa el error?