我正在将包含mysql_ *函数的php脚本转换为PDO。
我想在我的旧脚本中显示所有与sql相关的错误,但我注意到,只要在sql语法中出现错误,即使启用了错误报告,php也会输出空白页。此错误也未记录在日志文件中。
如果我在包含多个sql查询的脚本末尾使用mysql_error()函数,那么各个sql查询报告的错误将被覆盖,并且只会显示最后创建的错误。
所以我的问题是在每个sql查询的末尾不使用die()或mysql_error()函数,有没有办法可以一次查看脚本中的所有错误?
我正在使用PHP版本5.3.8和mysql版本5.5。
答案 0 :(得分:0)
肯定mysql_error()
只返回最新查询的错误。
关于PHP返回空白页面,也许你没有打开display_errors。您需要启用error_reporting
和display_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_reporting
和display_errors
它们都与SQL错误无关,而是与PHP引擎本身无关。它们不会显示任何SQL错误。
并且像往常一样,停止使用mysql_*
函数