Para evitar una injeccion SQL yo utilizo esta función para escapar los nombres propios de SQL
Código PHP:
$variable1= filter_input(INPUT_POST, "formulario");
// devuelve una cadena escapada de algunos caracteres que
// pudieran servir para un ataque de sql injection
function injection($cadena) {
$str_KeywordsSQL = array("select ","insert ","delete ","update ","union ");
$str_OperadoresSQL = array("like ","and ","or ","not ","<",">","<>","=","<");
$str_DelimitadoresSQL = array(";","(",")","'");
//Quitar palabras reservadas y operadores
for($i=0; $i<count($str_KeywordsSQL); $i++) {
$cadena = str_replace($str_KeywordsSQL[$i], "",strtolower($cadena) );
}
for($i=0; $i<count($str_OperadoresSQL); $i++) {
$cadena = str_replace($str_OperadoresSQL[$i], "",strtolower($cadena) );
}
for($i=0; $i<count($str_DelimitadoresSQL); $i++) {
$cadena = str_replace($str_DelimitadoresSQL[$i], "",strtolower($cadena) );
}
return $cadena;
}
//Escapar las cadenas para avitar SQL Injection
$variable1= injection($variable1);