Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Sichere Alternative zu mysql_real_escape_string? (PHP)

  • Es ist keine gute Idee, jedes Mal eine Verbindung herzustellen, wenn Sie diese Funktion aufrufen. Eine gut geplante Anwendung hätte solche seltsamen Einschränkungen nicht.
  • Sie können Ersetzungen wie diese verwenden
    myquery("SELECT * FROM table WHERE id = %s","My string");

  • Sie können eine andere Art der Ersetzung verwenden, eine moderne:vorbereitete Anweisungen. es wird in zahlreichen anderen Antworten beschrieben.

Da es noch niemand gepostet hat, hier ein grobes Beispiel

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);
  • Solange Sie Single-Byte-Codierung oder utf-8 verwenden, müssen Sie mysql_real_escape_string nicht verwenden, also mysql_escape_string (veraltet) oder Addlashes reichen aus