Este es el caso típico donde mysql_query devuelve false al fallar, por lo tanto, desencadena el infame:
Esto puede ser causado por múltiples factores. Intente ejecutar la consulta en phpMyAdmin o directamente en la base de datos y vea el error o obtenga el último error de mysql a través de mysql_error
.
Es una buena práctica verificar siempre si el valor devuelto de mysql_query es false o si el mysql_error la cadena no está vacía:
if ($result and empty(mysql_error()))
// everything ok
Nota:Nunca mezcles mysql_ y mysqli_ funciones Si tienes que elegir, iría con mysqli desde mysql_* funciones se consideran obsoletas.