Con ver solo la consulta, seguramente tu tienes las siguientes variables:
Código PHP:
$rut = "'12564879-K'";
$fecha = "'2008-21-10'";
$nota = "'5.6'";
(Ojo con las comillas simples dentro de la cadena)
Son esas variables las cuales le aplicas la función e integras en la consulta.
Si es así, entonces estas mal, la idea de la función es que escapes los caracteres que podrían ser inseguros, pero que sean parte del contenido, y no de la estructura de la consulta. Tu agregaste las comillas simples como parte del contenido que quieres agregar, y no como representacion de una cadena en ese campo.
La mejor forma de preparar la consulta es la siguiente:
Código PHP:
$sql = sprintf("INSERT INTO notas_parciales(rut, asignatura, ano, semestre, fecha, observacion, nota, sede, carrera) VALUES('%s', %d, %d, %d, '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($rut), // ej: 16897564-5, y no '16897564-5'
mysql_real_escape_string($asignatura),
$anio,
$semestre,
date("Y-m-d"),
mysql_real_escape_string($observacion),
$nota,
mysql_real_escape_string($sede),
mysql_real_escape_string($carrera)
);
De esa forma te aseguras que en los campos que sean numericos, se inserte efectivamente un numero y en los texto lo mismo, y las comillas forman parte de la consulta y no del contenido.
Espero que me hallas entendido la idea