SQLSRV_QUERY()期望参数1为资源,布尔值



我找到了一个旧的项目,不知何故它不再起作用了吗?我的意思是真的,我们将其关闭了,现在不再了。

    function fetchCharacter($UserNo){
        $connection_array = array( "Database"=>"Character", "UID"=>"sa", "PWD"=>"Password");
        $testcon = sqlsrv_connect("D-PCSQLExpress", $connection_array);
        $sql = "SELECT * FROM tCharacter WHERE nUserNo = ? AND bDeleted = ?";
        $param = array($UserNo, 0);
        $characters = sqlsrv_query($testcon, $sql, $param);
        while($character = sqlsrv_fetch_array($characters, SQLSRV_FETCH_ASSOC))

所以我真的不知道那里有什么问题。我收到sqlsrv_querysqlsrv_fetch_array的错误。

谢谢您的帮助。

您应该在sqlsrv函数后寻找错误。

function fetchCharacter($UserNo) {
    $connection_array = array( "Database"=>"Character", "UID"=>"sa", "PWD"=>"Password");
    $testcon = sqlsrv_connect("D-PCSQLExpress", $connection_array);
    if (!$testcon) {
       die( print_r( sqlsrv_errors(), true));
    }
    $sql = "SELECT * FROM tCharacter WHERE nUserNo = ? AND bDeleted = ?";
    $param = array($UserNo, 0);
    $characters = sqlsrv_query($testcon, $sql, $param); // telling $stmt instead of $characters could be less confusing
    if( !$characters ) {  
       die( print_r( sqlsrv_errors(), true));
    }
    $character = sqlsrv_fetch_array($characters, SQLSRV_FETCH_ASSOC);
    if($character === FALSE) {
       die( print_r( sqlsrv_errors(), true));
    } else if ($character === NULL) {
       // no result from select
       return;
    }
    do {
       // some operations
    } while($character = sqlsrv_fetch_array($characters, SQLSRV_FETCH_ASSOC));
    ...

参考

  • https://learn.microsoft.com/en-us/sql/connect/php/sqlsrv-connect
  • https://learn.microsoft.com/en-us/sql/connect/php/sqlsrv-query
  • https://learn.microsoft.com/en-us/sql/connect/php/sqlsrv-fetch-array

最新更新