php - 使用MS sql数据库时记录错误

标签 php sql-server-2008 logging error-handling

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

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

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

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

最佳答案

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

关于php - 使用MS sql数据库时记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11794904/

相关文章:

php - ajax调用后强制下载

javascript - 如何打印或获取从jquery发送到php文件Wordpress的数组

sql - 如何修改以下代码以忽略带 0 的行并每周显示输出

c# - 如何添加营业时间?

java - Hibernate 使用 apache commons 日志记录和 slf4j - 为什么需要 2 个日志记录抽象层?

logging - Serilog:使用简单的 for 循环记录时丢失日志

php - PHP 和 MySQL 中的错误监控

PHP + MySQL : Upload large spreadsheet into MySQL efficiently

sql - 如何合并 SQL Server 中多行的数据

java - LoggerFactory 不是 Logback LoggerContext 但 Logback 在类路径上