Урок 63, PHP. Не записывает в БД переменные со значением NULL в кавычках. Дело в настройках MySQL?
У меня была проблема при прохождении урока 63 "Запись из XML в БД", курс PHP-MySQL.
Если рейтинг фильма в XML-файле не указан, то согласно предложенного кода, переменной должно присваиваться значение NULL:
if($movie->imdb) {
$rating = $movie->imdb->attributes()['rating'];
} else {
$rating = NULL;
}
Однако при запуске скрипта опция [$mysqli->error]
выводит сообщение об ошибке:
"Data truncated for column 'rating' at row 1"
При этом скрипт работает, если убираешь опцию [$mysqli->error]
.
Но тогда в таблицу БД не вносятся строки, в которых $rating = NULL;
В итоге скрипт отработал только тогда, когда вместо $rating = NULL;
я написал $rating = 0;
Дело, похоже, в кавычках, которыми обрамляется переменная $rating
:
$query = "INSERT INTO movie VALUES (NULL,..., '$rating',... )";
И я не знаю как решить эту проблему, кроме как перед запросом проверять что пришло в $rating
. Чтобы потом выставлять нулевое значение принудительно, типа такого:
if ($rating == null) {$rating = 0;}
Хотя, подозреваю, что это возможно выставить где-то в настройках сервера MySQL.
Можно ли мне помочь?
Если что, у меня используется LAMP:
Apache 2.4.23-4.3
PHP 5.5.14 (cli)
mysql Ver 15.1 Distrib 10.0.27-MariaDB, for Linux (x86_64) using readline 5.1