Урок 63, PHP. Не записывает в БД переменные со значением NULL в кавычках. Дело в настройках MySQL?

0

У меня была проблема при прохождении урока 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

0 ответов

Sign up or Log in to write an answer