Hallo,
nur um die Begrifflichkeiten zu klären:
Was sagt mysql_error()? Ich tippe mal darauf, dass du den String nicht encodest.
Zeichenketten in SQL-Statements müssen nicht "encodet" werden. Man sollte die für das DBMS relevanten Zeichen maskieren, z.B. im Fall von MySQL mit mysql_real_escape_string(). Das meintest Du sicherlich mit "encoden".
Mindestens so interessant wie die Ausgabe von mysql_error() ist die Ausgabe des SQL-Statements, das an MySQL übergeben wird. Nicht die PHP-Codezeile, sondern das von PHP generierte Statement.
Freundliche Grüße
Vinzenz