Mysql
 sql >> Base de données >  >> RDS >> Mysql

Alternative sûre à mysql_real_escape_string ? (PHP)

  • C'est une très mauvaise idée de se connecter à chaque fois que vous appelez cette fonction. Une bonne application planifiée n'aurait pas une limitation aussi étrange.
  • vous pouvez utiliser des substitutions, comme ceci
    myquery("SELECT * FROM table WHERE id = %s","My string");

  • Vous pouvez utiliser un autre moyen de substitution, un mode moderne :les instructions préparées. il sera décrit dans de nombreuses autres réponses.

comme personne ne l'a encore posté, voici un exemple approximatif

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);
  • Tant que vous utilisez l'encodage sur un octet ou utf-8, pas besoin d'utiliser mysql_real_escape_string, donc mysql_escape_string (obsolète) ou ajouter des barres obliques suffirait