You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP执行sqlsrv_query返回Resource id #3无法获取SQL Server表内容怎么办

问题原因

  1. sqlsrv_fetch() 仅返回布尔值表示行读取是否成功,不会返回实际的行数据,所以打印$row拿不到表内容。
  2. 你直接打印$stmt输出的是SQL Server语句资源的ID,这个是正常的资源标识,不是查询结果。

解决方案

替换读取行的函数为sqlsrv_fetch_array(),该函数会以数组格式返回当前行的字段内容,修正后的代码如下:

$sql = "SELECT * FROM nodes";
$stmt = sqlsrv_query($conn, $sql);

if ($stmt === false) {
    die (print_r(sqlsrv_errors(), true));
} else {
    // 第二个参数指定返回关联数组,键名对应表字段名
    while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
        print_r($row);
        echo "<br />";
    }
    echo "<br />Statement executed";
}

可选的返回类型参数:

  • SQLSRV_FETCH_ASSOC:返回关联数组,键名对应表字段名
  • SQLSRV_FETCH_NUMERIC:返回索引数组,键名按查询字段顺序从0开始排序
  • SQLSRV_FETCH_BOTH:默认值,同时返回关联和索引键

内容的提问来源于stack exchange,提问作者ICoded

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 20:21:04