No es un mensaje de error de PHP, sino que es el mensaje de mysql_error(). No se refiere a la linea 1 del script, sino a la linea 1 de la sentecia SQL. Bien, no es el mensaje que esperaba. Para ver la sentencia exacta que intenta ejecutar, cambia:
Código PHP:
or die("Error al grabar un mensaje: ".mysql_error());
por
Código PHP:
or die("Error al grabar un mensaje: $sql .<br>MySQL dice: ".mysql_error());
Asi veras la consulta que realmente intentas ejecutar en MySQL. Que puede ser distinta a la que crees que esta ejecutando.