日志中有很多cakephp警告

时间:2010-08-24 15:36:42

标签: php cakephp error-handling

我在日志中收到很多警告,例如: 2010-08-24 09:34:01警告:警告(2):mssql_num_rows():提供的参数不是[C:\ xampp \ htdocs \ cake \ libs \ model \ datasources \ dbo中的有效MS SQL结果资源\ dbo_mssql.php,第468行] 2010-08-24 09:34:01警告:警告(2):mssql_free_result():提供的参数不是[C:\ xampp \ htdocs \ cake \ libs \ model \ datasources \ dbo中的有效MS SQL结果资源\ dbo_mssql.php,第180行] 2010-08-24 09:34:01警告:警告(2):mssql_free_result():提供的参数不是[C:\ xampp \ htdocs \ cake \ libs \ model \ datasources \ dbo中的有效MS SQL结果资源\ dbo_mssql.php,第180行]

这些警告只是覆盖我的日志文件并使它们几乎无用。 我抬起了线条,他们使用@符号来抑制这些错误,例如: @mssql_free_result($这 - >结果);

仍然显示在我的日志中无论如何真的压制它们而不改变蛋糕代码?

更新

好吧,我更多地了解了这一点 这只发生在我没有进入调试模式时

这在调试器的错误处理函数中很明显 是这样的:

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

}

并且在正常的生产错误处理中:

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

}

因此在生产中它不会检查error_reporting()是否被抑制

1 个答案:

答案 0 :(得分:0)

这样的错误通常是数据库错误处理不当的结果。假设查询将成功并且盲目地使用来自..._ query()函数的返回值将导致类似的警告。 mssql_query()仅在有结果时才返回语句句柄。如果查询成功但没有结果,并且TRUE出错,它也将返回FALSE

将true / false传递给后面的函数(例如mssql_num_rows())会吐出“not a valid ... resource”错误/警告,因为,嗯......它们不是句柄。

换句话说,错误实际上不在警告中指示的行,它在脚本的前面,无论查询实际执行的地方。