Является ли необязательное начальное двоеточие для имен параметров, передаваемых в PDOStatement :: bindParam ()? - PullRequest
30 голосов
/ 20 марта 2012

При передаче именованных параметров вида :name в PDOStatement::bindParam(), похоже, работает, используется ли двоеточие в начале.

, то есть либо это:

$statement->bindParam(':name', $var);

или это:

$statement->bindParam('name', $var);

, кажется, работает.

Вот документация для PDOStatement::bindParam()

параметр

Идентификатор параметра.Для подготовленного оператора, использующего именованные заполнители, это будет имя параметра в форме : name. Для подготовленного оператора, использующего заполнители вопросительного знака, это будет позиция индекса с индексом 1.

Значит ли это, что толстая кишка может быть остановлена?

1 Ответ

29 голосов
/ 20 марта 2012

Нет, поскольку в документации это не упоминается, я думаю, можно с уверенностью предположить, что такое поведение официально не поддерживается и на него нельзя полагаться.

Тем не менее, это действительно работает (по крайней мере, в PHP 5.3.24) - внутренне двоеточие будет добавлено к параметру, если он отсутствует ( см. ext/pdo/pdo_stmt.c:363 в исходном коде PHP 5.3.24 *) 1005 *).

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