Mysql
 sql >> Database >  >> RDS >> Mysql

Alternativa sicura a mysql_real_escape_string? (PHP)

  • È un'idea terribile connettersi ogni volta che chiami questa funzione. Una buona applicazione pianificata non avrebbe limiti così strani.
  • puoi usare sostituzioni, come questa
    myquery("SELECT * FROM table WHERE id = %s","My string");

  • Puoi usare un altro modo di sostituzioni, moderno:le dichiarazioni preparate. sarà descritto in numerose altre risposte.

poiché nessuno l'ha ancora pubblicato, ecco un esempio approssimativo

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);
  • Finché utilizzi la codifica a byte singolo o utf-8, non è necessario utilizzare mysql_real_escape_string, quindi mysql_escape_string (obsoleto) o aggiungerelashes sarebbero sufficienti