no se tu pero te equivocas en la parte de que siempre colocas mysql_error(), y la razón es bien sabida: el error de sintaxis en la consulta de SQL se produce precisamente por eso, por un error en la consulta de SQL...
y siempre, el 99.9% de los casos que hemos visto en el foro relacionados a dicho mensaje de error es por lo mismo: en algún punto no depuras la consulta, así que si fueras tan amable de ayudarnos a ayudarte, ¿puedes mostrar tu script donde efectivamente surge el error y claramente imprimes mysql_error()?
¿supongo que imprimes mysql_error() después de la linea que provoca el error, cierto?