Много предупреждений CakePHP в журнале - PullRequest
1 голос
/ 24 августа 2010

я получаю много предупреждений в журналах, таких как: 2010-08-24 09:34:01 Предупреждение: Предупреждение (2): mssql_num_rows (): предоставленный аргумент не является допустимым ресурсом результата MS SQL в [C: \ xampp \ htdocs \ cake \ libs \ model \ datasources \ dbo \ dbo_mssql.php, строка 468] 2010-08-24 09:34:01 Предупреждение: Предупреждение (2): mssql_free_result (): предоставленный аргумент не является допустимым ресурсом MS SQL-результата в [C: \ xampp \ htdocs \ cake \ libs \ model \ datasources \ dbo \ dbo_mssql.php, строка 180] 2010-08-24 09:34:01 Предупреждение: Предупреждение (2): mssql_free_result (): предоставленный аргумент не является допустимым ресурсом MS SQL-результата в [C: \ xampp \ htdocs \ cake \ libs \ model \ datasources \ dbo \ dbo_mssql.php, строка 180]

эти предупреждения просто перезаписывают мои файлы журналов и делают их практически бесполезными. Я посмотрел на строки, и они использовали знак @, чтобы подавить такие ошибки, как: @mssql_free_result ($ this-> результаты);

и все же, показ в моем журнале, в любом случае, действительно ли подавить их, не изменяя код пирога?

UPDATE:

хорошо, я посмотрел на это немного больше это происходит только когда я не в режиме отладки

и это происходит в функции обработки ошибок отладчика fron это:

if (error_reporting() == 0 || $code === 2048 || $code === 8192) {
    return;

}

и при обычной обработке производственных ошибок:

if ($code === 2048 || $code === 8192) {
    return;

}

поэтому в производстве не проверяется, подавлена ​​ли error_reporting ()

1 Ответ

0 голосов
/ 24 августа 2010

Подобные ошибки обычно являются результатом плохой обработки ошибок базы данных. Если предположить, что запрос будет выполнен успешно, а слепое использование возвращаемых значений из функций ..._ query () вызовет подобные предупреждения. mssql_query() возвращает дескриптор оператора, только если были результаты. Он также вернет TRUE, если запрос выполнен успешно, но результатов не было, и FALSE при ошибке.

Передача значений true / false в более поздние функции (например, mssql_num_rows()) будет выдавать ошибки / предупреждения "недопустимый ... ресурс", потому что, ну ... они не являются ручками. *

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

...