Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Alternativa segura para mysql_real_escape_string? (PHP)

  • É uma péssima ideia conectar toda vez que você está chamando essa função. Um aplicativo bem planejado não teria uma limitação tão estranha.

  • você pode usar substituições, como esta
    myquery("SELECT * FROM table WHERE id = %s","My string");

  • Você pode usar outra forma de substituição, uma moderna:declarações preparadas. ele será descrito em várias outras respostas.

como ninguém postou ainda, aqui está um exemplo aproximado
function fetchAll(){
 $args = func_get_args();
 $query = array_shift($args);
 $stmt = $pdo->prepare($query);
 $stmt->execute($args);
 return $stmt->fetchAll();
}
$a=$db->fetchAll("SELECT * FROM users WHERE status=? LIMIT ?,?",$status,$start,$num);
  • Desde que você esteja usando codificação de byte único ou utf-8, não é necessário usar mysql_real_escape_string, então mysql_escape_string (obsoleto) ou addlashes seriam suficientes