Las funciones que te han dado te ofrecen más o menos protección. Mira esta función. Es una combinacion de todo lo que te dicen ahi arriba, lo que la hace en cierta forma más segura

:
Código PHP:
function mysql_escape($val) {
if (get_magic_quotes_gpc()) $val = stripslashes($val);
$f = (function_exists('mysql_real_escape_string')) ? "mysql_real_escape_string" : ((function_exists('mysql_escape_string')) ? "mysql_escape_string" : "addslashes");
return (!is_numeric($val)) ? "'".$f($val)."'" : $val;
}
FORMA DE USO:
Tu consulta es:
Código PHP:
$sql = "SELECT * FROM tabla WHERE campo1=".mysql_escape('hola')." AND campo2=".mysql_escape(4);
Espero te sirva...
Un saludo,