Я знаю, что есть другие сообщения по этой теме, но они не отвечают на основной вопрос. В предыдущих ответах все говорят использовать PDO :: PARAM_NULL, но не все ли удаляют всю причину использования PDO?Невозможно установить NULL с PDO
Вот мой код:
$sql = "INSERT INTO users_address (uid,street1,street2,city,state,region,postalcode,country) VALUES (?,?,?,?,?,?,?,?)";
$stmt = $this->db->conn_id->prepare($sql);
$stmt->bindParam(1, $uid, PDO::PARAM_INT);
$stmt->bindParam(2, $street1, PDO::PARAM_STR);
$stmt->bindParam(3, $street2, PDO::PARAM_STR);
$stmt->bindParam(4, $city, PDO::PARAM_STR);
$stmt->bindParam(5, $state, PDO::PARAM_STR);
$stmt->bindParam(6, $region, PDO::PARAM_STR);
$stmt->bindParam(7, $postalcode, PDO::PARAM_STR);
$stmt->bindParam(8, $country, PDO::PARAM_STR);
$stmt->execute();
Не все эти значения необходимы для того, иногда они равны нулю. Оба поля базы данных varchar и int имеют значение по умолчанию = null. Как я могу подготовить это так, чтобы, если переменная имеет значение null, значение null вставляется? Все остальные ответы, которые я видел, пропускают NULL для второго параметра, но как я знаю, что во время выполнения это нуль?
Чтобы быть действительно понятным. Я не хочу неявно вставлять нуль. Я хочу вставить переменную, которая может быть пустой, если пользователь не заполнил форму. Не все поля обязательны для заполнения. Например, в этом примере $ street2.
Что именно вы пытаетесь вставить (то есть, что '$ street1',' $ city' ... содержат?) И что вы получаете вместо этого? –
Возможный дубликат [Как вставлять значения NULL с помощью PDO?] (Http://stackoverflow.com/questions/1391777/how-do-i-insert-null-values-using-pdo) – DanFromGermany
Не дублировать Дан и Я объяснил, почему. :) Поля поступают из формы, которая была опубликована. Не все поля требуются, поэтому некоторые могут быть пустыми. Я получаю сообщение об ошибке, которое не может обрабатывать нули. –