В таблице книг некоторые строки могут не иметь полных данных. Однако администратор может редактировать строки. В этом случае администратор обновляет строку, добавляя год публикации, где ее не было (year_pub был вставлен пустым).PHP/MySQL/PDO - не удалось ОБНОВИТЬ Значения по умолчанию или нулевые значения
MySQL/PDO UPDATE на этом INT(4)
столбец не работает по какой-либо причине.
Поле year_pub не является нулевым.
Вот код:
$year_pub = filter_var($_POST['year'], FILTER_SANITIZE_NUMBER_INT);
$id_book = filter_var($_POST[‘id’], FILTER_SANITIZE_NUMBER_INT);
/*
* DB CONNECT
*/
$query = "UPDATE table_books SET year_pub=:year_pub WHERE id_book=:id_book";
$stmt = $dbH->prepare($query);
$stmt->bindParam(":year_pub", $year_pub, PDO::PARAM_INT);
$stmt->bindParam(":id_book", $id_book, PDO::PARAM_INT);
$stmt->execute();
Вот некоторые результаты:
[year_pub поле имеет значение по умолчанию]
Если по умолчанию 0 UPDATE не работает.
Если значение по умолчанию 1 UPDATE не работает.
Однако вторая попытка ОБНОВЛЕНИЯ работает.
[year_pub поле не имеет Значение по умолчанию] ('заполнитель' значение вместо этого)
если placeholder
значение 0 UPDATE не работает
если placeholder
значение 1 UPDATE работает
Это очень странное поведение. Я никогда не видел этого раньше. Может кто-нибудь объяснить, что здесь может произойти?
Первое, что я заметил, это странная раскраска вашего кода из-за разных видов цитат, я бы посмотрел на это в первую очередь. –
Хорошо, я думаю, теперь вижу его в блоке кода. Клавиша «Год» выделяется красным цветом. Теперь я понимаю свою ошибку. Фактическое поле в БД - это просто «год», который является ключевым словом MySQL. – Dev
Это было вырезано-вставить из RTF. Это странно. – Dev