PHP/MySQL | Задание 62
0
Подскажите, в чём дело? Вчера ещё всё работало, в БД добавлялись записи, а потом вдруг раз, и перестало. Уже всё вернул на изначальную позицию, Перепроверил код, добавил проверку в конце - пишет ошибка. Видимо ошибка где-то в запросе?
function insert($name, $desc, $year, $rating, $poster, $category_id) {
$mysqli = new mysqli('localhost', 'root', '', 'sovietfilms');
if(mysqli_connect_errno()) {
print_f('Соедение не установлено', mysqli_connect_errno());
exit();
}
$mysqli->set_charset('utf8');
$query = "INSERT INTO movie VALUES(null, '$name', '$desc', '$year', '$rating', '$poster', Now(), '$category_id')";
$result = false;
if($mysqli->query($query)) {
$result = true;
}
return $result;
}
$i = 0;
$xml = simplexml_load_file("xml_files/movies.xml") or die("Error: Cannot create object");
//echo count($xml);
$title = null;
$title_orign = null;
$post = null;
$rating = null;
$year = null;
foreach ($xml as $movie_key => $movie) {
$title = $movie->title_russian;
$title_orign = $movie->title_original;
$year = $movie->year;
foreach ($movie->poster->big->attributes() as $poster_key => $poster) {
$post = $poster;
}
if($movie->imdb) {
$rating = $movie->imdb->attributes()['rating'];
} else {
$rating = null;
}
if(insert($title, $title_orign, $year, $rating, $post, 1)) {
if($i == 0) {
echo "Данные добавлены";
}
} else {
if($i == 0) {
echo "Ошибка"."<br>";
}
}
$i++;
}
2 ответов
2
Для меня открытие было, что можно отлавливать ошибки при работе через php с mysql.
Просто замените ваш код:
if($mysqli->query($query)) {
$result = true;
}
на такой код:
if( $mysqli->query($query) or die( $mysqli->error ) ) {
$result = true;
}
Строчка die( $mysqli->error ) покажет какая ошибка происходит - нет какого-либо поля или другие ошибки.
2
Спасибо большое! Так сразу понимаешь где искать ошибку. Проблема была в несоответствии количества столбцов в коде:
$query = "INSERT INTO movie VALUES(null, '$name', '$desc', '$year', '$rating', '$poster', Now(), '$category_id')";
и в БД php myadmin