gpt4 book ai didi

php - SQL Server查询错误日志

转载 作者:行者123 更新时间:2023-12-03 07:48:08 24 4
gpt4 key购买 nike

我正在使用PHP和SQL Server创建一个应用程序,我更喜欢使用日志,并且在出现错误的情况下仅向用户提供一些常规信息,例如在可能出现已知错误的情况下由我定义的错误号和日期。但这给了我调试问题的空间,我发现PHP日志(php-erros.log)非常有用,我得到的所有错误我都可以非常轻松,快速地看到它们而不会弄乱要调试的代码。但是我仍然有SQL Server问题,我使用的是Microsoft SQL Server(10.50.1600.1),我发现了一些日志文件(C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Log),但是这些日志文件只有主要错误,我无法从PHP查询中看到错误,有什么方法可以轻松激活或检查这些错误?

最佳答案

您的“sqlsrv_fetch_array()期望参数1为资源,给定 bool(boolean) 值”错误不是SQL Server而是PHP。

我们可以看到您的代码吗?

您正在尝试从失败的请求中获取数据。这是一种正常的工作方式,看看发生了什么:

<?php

$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );


if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
echo $row['LastName'].", ".$row['FirstName']."<br />";
}

sqlsrv_free_stmt( $stmt);

这段代码:
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}

您需要的是:在尝试获取请求结果之前测试请求结果,然后转储错误。
如果要将SQL错误发送到PHP日志,可以使用 error_log函数。

关于php - SQL Server查询错误日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8760043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com