@gringo_beta
учусь php

Импорт в базу данных не работает null. В чем ошибка?

добрый день только учусь, заранее извиняюсь если что то нетак.
Суть проблемы: настроил экспорт из файла в базу данных параметров, но в файле есть одно необязательное поле (оно заполнено не у всех объектов) как результат товары у которых это поле не заполнено не вносятся в базу данных, я добавил исключение что если это поля нет считать его null, всеравно неработает однако если прописать правило что если это поле не заполнено счтать его 0 или 1 то все работает но важно передать именно параметр null

вот код

<?php
  function insert($name, $desc, $year, $rating, $poster, $category_id) {
    $mysqli = new mysqli('localhost', 'mysql', 'mysql', 'test2');
    if (mysqli_connect_errno()) {
      print_r('соединение не установлено');
      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");
      // echo count($xml);
      $title = null;
      $title_orign = null;
      $post = null;
      $rating = null;
      $year = null;
 
      foreach ($xml as $movie_key => $movie) {
        // echo $movie->title_russian.'<br>'; это равно строке ниже
        $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) {
          // echo $movie->imdb->attributes()['rating'];
          $rating = $movie->imdb->attributes()['rating'];
        }
         else {
           $rating = null;
         }
        insert($title, $title_orign, $year, $rating, $post, 1);
 
      }
    echo "<pre>";
    print_r ($xml);
    echo "</pre>";
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
 
</body>
</html>


при добавлении в базу данных
происходит добавление фильмов только с рейтингом
там где рейтинг не указан они не вносятся в базу данных

тоесть правило
else {
$rating = null;
}
почему то неработает
хотя если указать else {
$rating = 0;
}

то все фильмы вносятся в базу данных хоть и 0 рейтингом.
как сделать чтобы правиль
else {
$rating = null;
}
заработало
  • Вопрос задан
  • 223 просмотра
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Использовать подготовленные выражения
пруф
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы