Что означает предупреждение PHP, если оно относится к чему-то, что произошло в «строке 0»? - PullRequest
3 голосов
/ 06 октября 2009

Я не сталкивался с подобной ошибкой раньше, когда упоминалась строка 0. Имеет ли он конкретное значение или просто PHP не смог определить номер строки, прежде чем что-то пошло не так?

Полное предупреждение:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /xxxxxx/text_editor.php on line 0

Несмотря на то, что появляется предупреждение, мое соединение MySQL кажется неповрежденным, и приложение ведет себя как ожидалось, кроме этого сообщения.

Кроме того, у меня установлена ​​error_reporting (0), поэтому я не ожидал, что вообще появятся предупреждения PHP.

Я использую PHP 5.2.11 и не смог воспроизвести ошибку на других идентичных установках, а также при использовании PHP 5.2.9 или PHP 5.3.0. Учитывая вышесказанное, кто-нибудь может пролить свет на это для меня?

Спасибо, и если вам нужна дополнительная информация, просто дайте мне знать.

Рич

Ответы [ 3 ]

1 голос
/ 06 октября 2009

Я нашел этот отчет об ошибке: http://bugs.php.net/bug.php?id=32101

Автор утверждает, что:

Когда исключение выдается внутри обработчик исключений, исключение без фрейма стека в неизвестном на линии 0 "сообщение отображается.

Хотя я не знаю, может ли это быть применимо к вашему делу. Вы ловите ошибку в вашем text_editor.php?

0 голосов
/ 07 октября 2009

Строка 0 означает, что по какой-то причине PHP не может определить лучший номер строки для места возникновения проблемы.

Основной источник вашей проблемы, по-видимому, заключается в том, что то, что вы передаете в качестве первого (возможно, единственного) аргумента mysql_fetch_array(), не является действительным результатом mysql_query(). Проверяли ли вы, что mysql_query() само возвращалось успешно, прежде чем собирать результаты с набором результатов?

Ссылка , предоставленная Филом Паффордом, говорит о первом параметре:

Обязательно. Указывает, какой указатель данных использовать. Указатель данных является результатом функции mysql_query ().

Тот же сайт говорит о mysql_query:

Функция mysql_query () выполняет запрос к базе данных MySQL.

Эта функция возвращает дескриптор запроса для запросов SELECT, TRUE / FALSE для других запросов или FALSE при ошибке.

Посмотрите на ваш код проверки ошибок. Каждый запрос к базе данных может завершиться сбоем - возможно, произошла авария СУБД, если ничего больше.

0 голосов
/ 06 октября 2009

Хм, вы объявляете тип возвращаемого массива?

mysql_fetch_array (данные, array_type)

array_type

    * MYSQL_ASSOC - Associative array
    * MYSQL_NUM - Numeric array
    * MYSQL_BOTH - Default. Both associative and numeric array

Может ожидать тип возврата, но имеет поведение по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...