0

我编写了一个连接到 ms sql db 并执行一些插入/更新的 php 页面/脚本。可能会发生错误,所以我想将它们记录到文件中。

当前版本的日志记录功能是:

function logMsSqlError($fileStream){
        fwrite($fileStream, "Error: ".mssql_get_last_message()."\n");
        fwrite($fileStream,urldecode(http_build_query( error_get_last()))."\n" );
}

它的用法如下:

 $res = mssql_query($q, $dbhandle);
        if(!$res) {
                logMsSqlError($fh);
                fclose($fh);
                die("query failed");
        }

问题是,当出现错误时,我会在网页中看到很多有用的信息:

"Warning: mssql_query(): message: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Test1". 

The conflict occurred in database "testDb", table "dbo.testTable", column 'TestColumn'. (severity 16) in /var/www/html/sms/utilities.php on line 31 

Warning: mssql_query(): General SQL Server error: Check messages from the SQL Server (severity 16) in /var/www/html/sms/utilities.php on line 31 

Warning: mssql_query(): Query failed in /var/www/html/sms/utilities.php on line 31"

在日志文件中,我无法捕获所有这些详细信息。现在我得到:

Error: The statement has been terminated.
type=2&message=mssql_query(): Query failed&file=/var/www/html/sms/utilities.php&line=31

如何在日志文件中获取浏览器错误中的详细信息?(网页中的详细信息来自哪里?)

4

1 回答 1

1

您有两个选择:您可以log_errorsphp.ini中打开或使用set_error_handler函数将您自己的日志记录系统与 PHP 错误处理程序集成。

于 2012-08-03T11:39:47.390 回答