Что не так в коде?

0
function insert($name, $desc, $year, $rating, $poster, $category_id) {
$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');

if(mysqli_connect_errno()) {
print_f('Соединение не установлено');
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;
}


$xml = simplexml_load_file("xml/movies.xml") or die("Error: Cannot create object");

$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'];
}

insert($title, $title_orign, $year, $rating, $post, 1);
}


echo "<pre>";
print_r($xml);
echo "</pre>";

?>

А вот что база говорит

MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 0,0009 сек.)

php

2 ответов

1

Возможно у вас где-то в структуре базы данных ошибка, поэтому не вставляются данные. Вот здесь есть в ответах рекомендация как развернуть базу данных к этому уроку и запустить код:

https://fructcode.com/ru/qa/ne-dobavlaetsa-zapis-iz-xml-v-bd-cto-delau-nepravilno-ipmigv/

Потом можно сравнить свою структуру базы данных с оригинальной.

0

Спасибо. Нашел ответ. Помогла только вставка кода в SQL в базе

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; CREATE TABLE `movie` ( `id` int(5) NOT NULL, `name` varchar(255) NOT NULL, `descriptions` text NOT NULL, `year` int(4) NOT NULL, `rating` float(3,1) NOT NULL, `poster` varchar(255) NOT NULL, `add_date` datetime NOT NULL, `category_id` tinyint(4) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE `movie` ADD PRIMARY KEY (`id`); ALTER TABLE `movie` MODIFY `id` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=111; COMMIT;

Sign up or Log in to write an answer