Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy deklaracje PDO są automatycznie escapowane?

Tylko przygotowane oświadczenia zapewniają automatyczną ucieczkę, zakładając, że nie masz włączonej brzydoty, takiej jak magiczne cudzysłowy. I tylko dane w params są zmieniane, a nie wszystko, co jest już w ciągu SQL, kiedy przygotowujesz instrukcję.

Jeśli chcesz skorzystać z funkcji automatycznego ucieczki, musisz przygotować zestawienie i podać je oddzielnie.

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

W przeciwnym razie uzyskasz niewielką lub żadną ochronę przed mysqli_query i przyjaciele. (Odmawiam nawet wspominania mysql_query , ponieważ nie używa go już żaden szanujący się programista PHP. Och, czekaj... cholera. Cóż, to jedyna wzmianka, o której tutaj chodzi.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać wartość kolumn typu danych BIT(…) w postaci binarnej?

  2. Zapytanie o usunięcie klucza unikalnego lub podstawowego z tabeli MYsql

  3. Maksymalna długość MySQL i GROUP_CONCAT()

  4. Uzyskaj maksymalną wartość i odpowiednią kolumnę

  5. Wiersze MySQL są usuwane po zakończeniu działania programu