Incorrect date value: '' for column 'ххх' at row 1 ( 1292 )

307
07 октября 2017, 21:44

Здравствуйте! Есть таблица в БД, с типом date c разрешенным значением NULL. Через страничку администрирования PHP пишу:

$date1 = $_POST['date1_input'];
echo $date1;

Значение пустое (нулевое).

При вставке

$sql2 = "UPDATE record SET dtstamp1='$date1' WHERE id='$id' LIMIT 1";
$result2 = mysqli_query($connection, $sql2);

Выходит ошибка:

Incorrect date value: '' for column 'dtstamp1' at row 1 ( 1292 ).

На странице редактирования разместил инпут с типом дата, т.е. календарь -

<input type="date" name = "date1_input" autocomplete="off" value = "">

Не могу понять, данные я не ввожу, т.е. дату не выбираю. При проверке значение пустое (нулевое), нулевое значение разрешено. Почему возникает ошибка?

Answer 1

Если в mysqli всё примерно такое же, как в PDO, то...

$sql2 = "UPDATE record SET dtstamp1=? WHERE id=? LIMIT 1";
$stmt = mysqli_prepare($connection, $sql);
$stmt->bindParam('si',$date1,$id);
$result2 = $stmt->execute();

И передавайте что хотите. Вроде как говорят, что null воспринимается корректно при указании любого из поддерживаемых mysqli типов.

P.S. не совсем понял только, зачем получаете результат выполнения этого запроса - какую-то полезную проверку затем делаете? Если нет - перестаньте так делать. Серьезно.

READ ALSO
Как в WordPress поменять Featured Image для поста

Как в WordPress поменять Featured Image для поста

Как в WordPress поменять Featured Image для всех постов на 1 изображение а посте?

220
laravel 5.4 ErrorException

laravel 5.4 ErrorException

Есть на сайте авторизация через соц сетиЧерез гугл все проходит нормально, но через фейсбук выдает эту ошибку,

243
Помогите с условием из MySQL

Помогите с условием из MySQL

ЗдравствуйтеИмеется такая задача: 1) Проверить есть ли доступ к устройству

248