1
0

Не получается добавить фильмы в БД, добавил проверку if( $mysqli->query($query) or die( $mysqli->error ) ) пишет ошибку:  Out of range value for column 'id' at row 1

<?php

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) or die( $mysqli->error ) ) {
$result = true;
}

return $result;
}


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

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

}

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

?>


Руслан А.
4 years ago






Out of range value for column 'id' at row 1 - значит он пытается записать в базу значение id которое не соответвует возможным

Смотрите в таблице movie что там не так в струтуре со столбцом id

- 'id' должен быть первым в списке, должен быть задан тип INT, должен быть установлен Auto-increment

если что-то из этого не так, из-за этого и могут быть ошибки

Pavel Lazarev
4 years ago

Точно , сегодня подключил phpmyadmin и он начал ругаться на id, буду разбираться, спасибо.

Руслан А.
4 years ago

2 ответов