PDO: готовит () экранировать все данные, даже если они не связаны? - PullRequest
2 голосов
/ 08 сентября 2010

Некоторые типы данных, номера IE или имя таблицы не могут быть добавлены в качестве параметра с PDO, поскольку он добавляет одинарные кавычки вокруг них.

Когда я добавляю их (переменные) вручную, произнесите что-то вроде этого:

  $statement = $dbh->prepare("INSERT INTO $TABLE_NAME (id, foo, timestamp) VALUES (1234, ?, 4567890))");
  $statement->execute(Array($foo));

Мой вопрос таков: метод prepare () экранирует или правильно обрабатывает ВСЕ данные внутри?Или просто данные, связанные с помощью команды execute / bind?мое размещение переменных непосредственно в операторе prepare() встречается редко, но я действительно хотел бы знать об этом при написании.

Ответы [ 3 ]

4 голосов
/ 08 сентября 2010

Мой вопрос: готовит () экранирование или правильно обрабатывает ВСЕ данные внутри?Или просто данные, которые связаны с помощью команды execute / bind?

Нет.Только связанные параметры экранируются.

Всегда параметры привязки для всех входящих данных.

2 голосов
/ 08 сентября 2010

Нет, подготовить экранирует только те данные, которые используют заполнители.

0 голосов
/ 08 сентября 2010

Нет;Расширение AFAIK $ обрабатывается непосредственно PHP, и "foo $bar baz" эквивалентно "foo " . $bar . " baz".

...