Я использую PHP PDO с бэкэндом Postgresql. У меня есть таблица, в которой есть некоторые пустые поля, и когда пользователь ничего не вводит в поле формы HTML, я хочу вставить NULL в это поле, а не пустую строку (это важно, поскольку некоторые из моих SELECTs в этих таблицах позже используют такие условия поскольку ГДЕ Х НЕ НУЛЬ)).
Однако эта версия кода bindParam вставляет пустую строку в пустое поле вместо NULL.
$stmt2->bindParam(':title', $title, PDO::PARAM_STR);
Я немного прочитал и понял, что это ответ для вставки пустого значения в поле:
$stmt2->bindParam(':title', $title, PDO::PARAM_NULL);
но это означает, что мне нужно предварительно проверить все параметры, которые передаются в пустые поля, чтобы определить, являются ли они пустыми, и если это так, передать PDO :: PARAM_NULL вместо PDO_PARAM_STR. Я, конечно, могу это сделать, но надеялся, что может быть настройка, которая просто сообщит PDO, если он встретит пустую строку, вместо этого вставьте null.
Я наткнулся на это
$this->dbh->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING);
но это не имеет никакого эффекта, и, учитывая дальнейшие исследования, я думаю, что это влияет только на запись при выходе, а не при входе.
Какие-либо опции, кроме предварительной проверки переменных?
спасибо
Аарон