@andho: Строгий режим не включен по умолчанию, поэтому да, если для одного из конкретных драйверов PDO задана одна нестандартная настройка, это может быть полезно. Для остальных 99% пользователей, к которым ваш дополнительный случай не относится, настройка не очень полезна, как я указал в своем ответе.
tatement :: bindValue () Метод предлагает способ указать тип связанной переменной:PDOStatement :: bindValue ($ параметр, $ значение [,
$ data_type = PDO :: PARAM_STR ])Мне интересно, какова цель указания типа данных, тогда как при выходе по умолчанию (
) в конце концов, база данных все равно приведёт значение к нужному типу перед его использованием?PARAM_STR
Например, если у вас есть эти запросы более
поле:INTEGER
И вы связываете целое число в PHP, PDO по умолчанию связывает его как строку, что эквивалентно:
INSERT INTO table (integerField) VALUES (?) ;
SELECT * FROM table WHERE integerField = ? ;
Это будет работать безупречно, потому что база данных SQL (по крайней мере, MySQL, я на самом деле не знаю, как это будет работать на других СУБД) знает, как преобразовать строку обратно в целое число перед ее использованием.
INSERT INTO table (integerField) VALUES ("1") ;
SELECT * FROM table WHERE integerField = "1" ;
Каковы случаи использования, когда это будет иметь значение для связанных типизированных параметров против строк?
Возможный дубликат