【发布时间】:2021-03-04 16:22:58
【问题描述】:
我有一张名为tblDate 的表,其中包含dateID、dateDay 和dateMonth 列以及11 月份的30 条记录。使用sqlsrv_fetch_array(),我只能检索第一条记录。我读过here,为了检索多条记录,我需要使用sqlsrv_next_result(),但我究竟该如何使用呢?据我了解,此功能使下一条记录“活动”,然后允许我回显下一条记录,依此类推。但是当我尝试运行这段代码时:
$tsql = " SELECT * FROM tblDate;";
$stmt = sqlsrv_query( $conn, $tsql);
$row = sqlsrv_fetch_array($stmt);
echo "Date: ".$row["dateID"]." - ".$row["dateMonth"]." ".$row["dateDay"]."\n";
$next_row = sqlsrv_next_result($stmt);
$row = sqlsrv_fetch_array($stmt);
echo "Date: ".$row["dateID"]." - ".$row["dateMonth"]." ".$row["dateDay"]."\n";
我得到错误:
试图在 ... 中访问 bool 类型值的数组偏移量
我知道sqlsrv_next_result($stmt) 在没有更多记录但有更多记录时返回布尔值 false。我希望这段代码应该为我获取前两条记录,我是不是误会了什么?另外,我没有得到“消耗第一个结果”;那和插入记录是如何发挥作用的?我已经尝试直接复制粘贴和替换变量,但我似乎无法让它工作。老实说,这是我使用 php 的第一周,所以我不知道自己在做什么。最终,我只想显示查询的所有记录[SELECT * FROM tblDate 等],我该怎么做?
【问题讨论】:
标签: php sql sql-server