Secury Преимущества PHP PDO против mysql _ * () - PullRequest
2 голосов
/ 25 мая 2011

Существуют ли преимущества безопасности при использовании PHP PDO вместо mysql_connect () и т. Д.?

Ответы [ 3 ]

3 голосов
/ 25 мая 2011

Не нужно даже связывать Парам, просто сделайте

$stmt = $pdoConnection->prepare('SELECT foo FROM bar WHERE baz = :baz');
$stmt->execute(array(':baz' => 1));
foreach ($stmt as $row) {
}

Это просто.

3 голосов
/ 25 мая 2011

Нет.У PDO нет никаких преимуществ с точки зрения безопасности по сравнению с расширением MySQL (за исключением того, чему нас научил закон Мерфи, который применим к обоим).Оба будут обеспечивать безопасность ввода, экранируя одни и те же символы.

Однако у PDO есть и другие преимущества:

  • Поддержка подготовленных операторов;
  • Объектно-ориентированный интерфейс;
  • Абстракция доступа к данным;и
  • Создает более чистый код, поскольку вы можете экранировать несколько значений одновременно

Обычно они считаются наиболее важными.

2 голосов
/ 25 мая 2011

Да, если вы используете метод bindParam() вместо конкатенации строк с mysql_real_escape_string().

Гораздо проще запомнить bindParam() внешних данных, чем помнить, чтобы каждый раз самостоятельно экранировать значение mysql_*.

Кроме того, с PDO гораздо приятнее работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...