Предупреждение: неожиданный символ во входных данных: » (ascii = 29) состояние = 0 в

#php #mysql #warnings

#php #mysql #предупреждения

Вопрос:

Я читал о том, что другие сделали с этой ошибкой, и внес изменения в мой файл php.ini, добавил код для переопределения другой настройки php, и все равно получаю ту же ошибку. Вот мой код:

  <html>
 <body>
 <table>

 <?php error_reporting (E_ALL ^ E_NOTICE); ?>

 <?php

     function getRecords($query) {
         $con = mysql_connect("localhost", "movie", "moviepw");
         if (!$con)
         {
            die('Could not connect: ' . mysql_error());
         }

         mysql_select_db("movies", $con);

         $result = mysql_query($query);

         // THE ERROR IS REPORTED ON THIS LINE
         return $result;

}

          function buildQuery()  {

                    $keyword = $_GET['keyword'];

                    $sql = "SELECT * from movies WHERE
                            (
                            'movie_title' LIKE '%keyword%'
                            OR
                            'movie_description' LIKE '%keyword%'
                            )";

                    return $sql;  

        }

         $query = buildQuery();

         $records = getRecords($query);

         while($row = mysql_fetch_array($records)){ ?>

 <tbody>
          <table border='1'>

            <tr>
                   <td><?= $row['movie_title']; ?></td>
                   <td><?= $row['movie_rating']; ?></td>
                   <td> <img src="<?= $row['movie_image'];?>"> </td>
                   <td><?= $row['movie_description']; ?></td>
                   <td><a href="movie_index.php">Return to Search</a></td>
            </tr>

<? }  ?>

</tbody>

</table>
</body>
</html>
  

Есть идеи, почему я получаю эту ошибку?

Комментарии:

1. Пожалуйста, опубликуйте остальную часть сообщения об ошибке. Он отключен в заголовке вопроса. В частности, в какой строке это происходит.

2. Подводя итог: нераскрытый интерпретатор (PHP или SQL) выдает предупреждение в нераскрытой строке, поэтому вы внесли некоторые нераскрытые изменения в настройки PHP безрезультатно. Правильно? ;-P

3. Остальная часть ошибки: C:xampphtdocsmovie_display.php в строке 34

4. Да, я внес изменения безрезультатно. 🙂 Строка 34: return $resu<

5. @CherylAnnCE: сделайте так, чтобы ваш редактор визуально показывал вам символы, такие как пробелы и табуляции. 29 выглядит как пробел, но таковым не является.

Ответ №1:

Редактор добавил пробелы, которые нельзя было удалить. Мне пришлось удалить несколько строк и переписать их. Итак, эта проблема была не совсем с кодом…просто проблема с программным обеспечением текстового редактора.

Другая ошибка, с которой я столкнулся, была логической ошибкой с моим запросом. Оказывается, я пытался запросить базу данных вместо таблицы.

Спасибо за всю помощь в этом!

Ответ №2:

Удалите одинарные кавычки из имен столбцов в вашем запросе. Возможно, это не единственная ошибка, если интерпретатор PHP все еще жалуется на ASCII 29.

                $sql = "SELECT * from movies WHERE
                        (
                        'movie_title' LIKE '%keyword%'
                        OR
                        'movie_description' LIKE '%keyword%'
                        )";

               // Should be
               $sql = "SELECT * from movies WHERE
                        (
                        movie_title LIKE '%keyword%'
                        OR
                        movie_description LIKE '%keyword%'
                        )";
  

Комментарии:

1. Большое вам спасибо за идею. Я тоже попробовал, но проблема была на самом деле с некоторыми пробелами, которые были странно размещены моим редактором и не удалялись. Свободное программное обеспечение. ;-P

2. На самом деле, я должен был сказать, что я это исправил. Спасибо, что также указали на эту ошибку.