sql >> Databasteknik >  >> RDS >> Mysql

Säkert alternativ till mysql_real_escape_string? (PHP)

  • Det är en hemsk idé att ansluta varje gång du anropar den här funktionen. En bra planerad applikation skulle inte ha så konstiga begränsningar.
  • du kan använda ersättningar, som detta
    myquery("SELECT * FROM table WHERE id = %s","My string");

  • Du kan använda ett annat sätt att ersätta, ett modernt:förberedda uttalanden. det kommer att beskrivas i många andra svar.

eftersom ingen har lagt upp det ännu, här är ett grovt exempel

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);
  • Så länge du använder enbyte-kodning eller utf-8 behöver du inte använda mysql_real_escape_string, så mysql_escape_string (utfasad) eller addslashes skulle räcka


  1. Lagra filsökvägar i en databas

  2. Kan jag be Postgresql att ignorera fel i en transaktion

  3. Beräknar kumulativ summa i PostgreSQL

  4. SQL Join på null-värden