PHP执行sqlsrv_query返回Resource id #3无法获取SQL Server表内容怎么办
问题原因
sqlsrv_fetch()仅返回布尔值表示行读取是否成功,不会返回实际的行数据,所以打印$row拿不到表内容。- 你直接打印
$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
相关产品推荐
相关产品推荐

