Защита от  SQL inj
Поздравляю, вы изобрели Magic Quotes.

Да, этого достаточно. Разве ещё только $_FILES необработан.
Нет, это неудобно. Из-за чего от магических кавычек и отказались.
Мой вариант:
//---------------- Процедура подключения к базе данных -----------------------//
function dbconnect() {
 global $database;
 if (!isset($database)) {
 $database = mysql_connect("localhost", "**", "***");
 mysql_select_db("xxx", $database);
 }
}

//--------------------- Функция выполнения запросов --------------------------//
function sql_query($query) {
 global $errors;
 dbconnect();
 $return = mysql_query($query);
 $error = mysql_error();
 if ($error=='') {
 return $return;
 }
 else {
 writelog('sql_error', date("y.m.d H:m:s")."\t".$error);
 $errors .= $error;
 return false;
 };
}
//----------------------------------------------------------------------------//

//----------- Процедура проверки данных перед вставкой в запрос ---------------//
function checkfield($request) {
 $request = trim($request);
 if (isset($request)) {
 // Если не число, то экранируем ковычки
 if (is_numeric($request)) { return $request; }
 else { dbconnect(); return mysql_real_escape_string($request); }
 }
 else { return ''; }
}
//----------------------------------------------------------------------------//