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++;
	}
php
mysql

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

Sign up or Log in to write an answer