【发布时间】:2015-07-06 12:19:27
【问题描述】:
我正在将旧的 mysql 数据库技术更新为准备好的 pdo 语句。我对 while 循环 while($row = $result->fetch()) 很满意,但是如何使用 PDO 准备好的语句执行以下操作?
$sql = "SELECT * FROM table WHERE id=".$id;
$result = mysql_query($sql) or die(mysql_error());
$loop_count = mysql_num_rows($result);
for($row=0;$row<7 && $loop_count-->0;$row++)
{
// Get next row
$loop_row = mysql_fetch_array($result);
echo $loop_row['field'];
}
我试过了,但没有任何乐趣:
$result = $conn->prepare("SELECT * FROM table WHERE id= ?");
$result->execute(array($id));
$loop_count = $result->rowCount();
for($row=0;$row<7 && $loop_count-->0;$row++)
{
// Get next row
$loop_row = $result->fetch();
echo $loop_row['field'];
}
谢谢!
更新:使用 for 循环而不是 while 循环的原因是能够对结果进行分页,否则我只会将 LIMIT 7 放在 SQL 查询的末尾。
【问题讨论】:
-
在执行 select 语句时,
rowCount可能不适用于某些数据库。 -
如果你只想要 7 条记录,为什么不限制 7 条呢?然后获取行并输出您想要的值。
-
每页7页
-
问题是你构建你的代码期望:1)每页固定数量的项目和2)它总是有那么多条目。但是,如果在您的
for loop中,“循环终止测试”包含and more data rows测试,那么您的代码将需要进行微小的更改并正常工作。 -
@RyanVincent 您能否在答案中给出一个代码示例,以便我尝试一下?谢谢!