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

Sikkert alternativ til mysql_real_escape_string? (PHP)

  • Det er en frygtelig idé at oprette forbindelse, hver gang du kalder denne funktion. En god planlagt ansøgning ville ikke have så mærkelige begrænsninger.
  • du kan bruge substitutioner som denne
    myquery("SELECT * FROM table WHERE id = %s","My string");

  • Du kan bruge en anden måde at substituere på, en moderne:forberedte udsagn. det vil blive beskrevet i adskillige andre svar.

som ingen har postet det endnu, her er et groft eksempel

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 bruger single-byte-kodning eller utf-8, behøver du ikke bruge mysql_real_escape_string, så mysql_escape_string (forældet) eller tilføjede skråstreger ville være nok


  1. MySQL UNIX_TIMESTAMP til PostgreSQL

  2. Rails 5 og Ruby 2.3.3 Kunne ikke indlæse libmysql.dll

  3. MySQL - Tilmelding baseret på dato

  4. Bruger seneste aktiviteter - PHP MySQL