错误报告mysql查询

时间:2013-01-30 07:23:20

标签: php mysql sql

我正在将包含mysql_ *函数的php脚本转换为PDO。

我想在我的旧脚本中显示所有与sql相关的错误,但我注意到,只要在sql语法中出现错误,即使启用了错误报告,php也会输出空白页。此错误也未记录在日志文件中。

如果我在包含多个sql查询的脚本末尾使用mysql_error()函数,那么各个sql查询报告的错误将被覆盖,并且只会显示最后创建的错误。

所以我的问题是在每个sql查询的末尾不使用die()或mysql_error()函数,有没有办法可以一次查看脚本中的所有错误?

我正在使用PHP版本5.3.8和mysql版本5.5。

2 个答案:

答案 0 :(得分:0)

肯定mysql_error()只返回最新查询的错误。

关于PHP返回空白页面,也许你没有打开display_errors。您需要启用error_reportingdisplay_errors指令才能显示错误。

答案 1 :(得分:0)

  

所以我的问题不是使用die()或mysql_error()函数   每个sql查询的结束,有没有办法我可以   一次查看脚本中的所有错误?

不建议这样做。因为它不是停止脚本(通常在关键点)而是继续执行。

但是,如果您真的需要这个,可以将所有SQL错误保留在某个容器中,例如,$errors数组。它看起来像这样(程序代码):

<?php

$errors = array();

if ( ! mysql_query("SOME INVALID QUERY") ){

    array_push($errors, mysql_error());
}


if ( ! mysql_query("SOME ANOTHER INVALID QUERY") ){
   array_push( $errors, mysql_error() );
}

//lot of code
//.....

print_r( $errors );

error_reportingdisplay_errors它们都与SQL错误无关,而是与PHP引擎本身无关。它们不会显示任何SQL错误。

并且像往常一样,停止使用mysql_*函数