Mysql
 sql >> база данни >  >> RDS >> Mysql

Изявленията за PDO автоматично ли се екранират?

Само подготвените изрази осигуряват автоматично магическо избягване, ако приемем, че нямате активирана грозота като магически кавички. И само данните в параметрите се екранират, а не всичко, което вече е в SQL низа, когато подготвяте израза.

Ако искате да се възползвате от предимствата на автоматичното избягване, ще трябва да подготвите извлечение и да му подадете данните отделно.

$sth = $dbh->prepare("SELECT * FROM users WHERE username=? AND password=?");
$sth->execute(array($username, $password));

В противен случай получавате малка или никаква защита над mysqli_query и приятели. (Отказвам дори да спомена mysql_query , защото нито един уважаващ себе си PHP програмист вече не го използва. О, чакай... по дяволите. Е, това е единственото споменаване тук.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL избира всеки ден последен ред, подреден по дата DESC

  2. INSERT ... SELECT, InnoDB и заключване

  3. Как да представим категоризирана връзка много към много база данни, където категориите са специфични за едната страна на връзката

  4. PHP MYSQL многоизмерен масив

  5. 2 начина за изброяване на всички функции в MySQL