При подготовке запроса SQL с помощью PDO, должен/я должен сделатьДолжен/Должен ли я использовать PDO :: PARAM_NULL при привязке значения, которое равно null?
$query->bindValue('column', $value, is_null($value) ? PDO::PARAM_NULL : PDO::PARAM_STR);
Или я могу просто использовать PDO::PARAM_INT
или PDO::PARAM_STR
непосредственно, потому что PDO цифры, что одного из них сама по себе? (Как это на самом деле, на самом деле следует, на мой взгляд)
И как любопытство прослеживания вопрос, если я не должны использовать PDO::PARAM_NULL
, что это на самом деле для?
Это должно быть легко проверить. Настройте таблицу с нулевым столбцом, затем выполните «INSERTs» в обоих направлениях. –
В соответствии с [исходным кодом] (https://github.com/php/php-src/blob/master/ext/pdo/pdo_stmt.c) в функции 'really_register_bound_param' он либо преобразуется в' long', ' boolean' и 'string', если значение не является ничем. Таким образом, в какой-то мере бывает устаревшим использование константы 'PARAM :: TYPE', однако .. если PDO будет поддерживать другой тип db, который не позволяет' '' 'обрабатываться как' null' в 'null', это простое изменение для поддержки этой базы данных, если вы используете параметр. – Xorifelse
@ RickJames Ну, вот почему я спрашиваю, потому что это кажется * работать без него. Так что интересно, есть ли какие-либо проблемы с краем или возможные проблемы, с которыми я мог столкнуться, если я * не * использую его. – Svish