Ci sono diverso opzioni...
1. Attivi magic_quotes_gpc, ma te lo sconsiglio... tra l'altro è stato rimosso da php 5.4
2. Usi PDO/Mysqli con i prepared statements. all'escape ci pensa il driver
es
Codice PHP:
$dbh = new PDO(...);
...
$sth = $dbh->prepare('SELECT * FROM tabella
WHERE campo < :campo AND campo2 = :campo2');
$sth->bindParam(':campo', $_POST['campo'], PDO::PARAM_INT);
$sth->bindParam(':campo2', $_POST['campo2'], PDO::PARAM_STR);
$sth->execute();
3. Ti fai una funzione generica, che puoi usare ovunque
es
Codice PHP:
class Query{
public $table;
public function insert($data = array()){
$query = 'INSERT INTO '.$this->table;
$fields = array();
$values = array();
foreach($data as $key => $value){
$fields[] = $key;
$values[] = mysql_real_escape_string($value);
}
$query .= ' ('.implode(',',$fields).') ';
$query .= "VALUES ('".implode("','",$values)."')";
mysql_query($query);
}
}
// potresti quindi definirti
class News extends Query{
public $table = 'news_tbl';
}
// e richiamare
$news = new News();
$news->insert(array('title'=>$_POST['title'], 'body'=>$_POST['body'], ...));
4. Fai un mix dei punti 2 e 3 .... cosa che ti suggerisco
5. Affidati ad un ORM od una libreria esterna che ti gestisce il db. es doctrine
PS: il codice in questo post potrebbe contenere errori