PHP PDOStatement правильный заполнитель - PullRequest
1 голос
/ 25 марта 2019

Я хотел бы знать, преобразует ли объект PDOStatement placeholders в соответствии с DBMS.В примерах документации мы можем видеть только два вида placehoders: :named и с question mark, но есть и другие, например с $.

bindValue

bindParam

Показывает ли этот пример два варианта по вкусу или пригодности для поддержки DBMS

1 Ответ

2 голосов
/ 25 марта 2019

PDO преобразует синтаксис, который он понимает, в запрос / процедурный стиль различных баз данных.Это делается каждым драйвером базы данных.Хотя использование $ или другого заполнителя, известного конкретной базе данных, может работать (если PDO просто перенаправит $, которое он не понимает, а привязка будет работать), это поведение в лучшем случае недокументировано, но оно может перестать работать в любое время,Таким образом, правильный путь - это использовать метки-заполнители, которые понимает PDO (задокументированы два типа), и PDO преобразует их в формат, необходимый БД.Это гарантированно работает и является переносимым, если в любой момент вы переключите базы данных.

...