MSSQL Fetch数组在While循环中显示错误

时间:2019-04-24 16:14:59

标签: php sql sql-server

我正在编写一个查询,以在mssql服务器中获取某些结果,该查询可以正常工作,但现在出现了一些错误,错误是

  

警告:mssql_fetch_array():3不是有效的MS SQL结果资源   在

我的连接查询正在运行,没有问题,我的查询是这样

$qry="select cd_pcp,pcp_nm from tbl_m_pcp order by cd_pcp asc";
$result=mssql_query($qry);
while($row1=mssql_fetch_array($result))
{
echo $row1['cd_pcp'];
}

var_dump $ result show

  

resource(3)类型(mssql结果)

查询是在sql-server中执行的,为什么以任何方式解决此问题,请解决此问题?

2 个答案:

答案 0 :(得分:0)

一种可能的解释是mssql_query()的返回值:

  

返回值

     

成功返回MS SQL结果资源,如果没有行则返回TRUE   返回,否则返回FALSE。

检查mssql_query()的结果很重要:

<?php
...
$qry = "select cd_pcp,pcp_nm from tbl_m_pcp order by cd_pcp asc";
$result = mssql_query($qry);
if ($result === true) {
    echo "No rows are selected";
} else if ($result === false) {
    echo "Error. ".mssql_get_last_message();
    exit;
} else {
    while ($row1 = mssql_fetch_array($result)) {
        echo $row1['cd_pcp'];
    }
}
...
?>

注意:

MSSQL扩展已在PHP 7.0中删除。一种不错的选择是PHP Driver for SQL Server

答案 1 :(得分:0)

我相信如果返回成功与否,var_dump将始终独立返回“ mssql结果”。如果值返回FALSE,则进行调试测试

$result = mssql_query($qry,$conn);
if(!$result)  {
   die('MSSQL error: ' . mssql_get_last_message());
}