¿Y al menos te fijaste que en la prueba que te postee en lugar de esa función (que depende de la conexión), usé addslashes()?
¿Intentaste hacer una prueba
por fuera de tu script, creando otro explusivamente para verificar la construcción de la sentencia?
¿Cópmo queda escrita esa sentencia en la variable $sql?
Postea eso.
A mi entender estás escribiendo un código inútilmente complicado...
Trata de simplificarlo y hacerlo por etapas de modo que sea visible en qué punto se generan los errores.
Procesa primero lo que contienen las variables con addslashes() y luego usa las variables directamente.
Yo, al menos, reemplazaría esto:
Código PHP:
mysql_query($sql,$connect);
por esto:
Código PHP:
mysql_query($sql,$connect) or die(mysql_error());
AL menos así sabrías qué diferencia hay entre lo que manda la sentencia y lo que recibe la base.
Aunque a mi me parece que el tema viene siendo de charset...