0

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

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

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

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

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

4

2 回答 2

0

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

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

但是,如果您真的需要这个,您可以将所有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_*函数

于 2013-01-30T07:39:30.120 回答
0

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

关于 PHP 返回一个空白页,可能你没有打开 display_errors。您需要同时打开两个error_reportingANDdisplay_errors指令才能显示错误。

于 2013-01-30T07:30:34.423 回答