【发布时间】:2012-01-05 08:10:22
【问题描述】:
我想我在这里疯了。
这是代码。 (为了证明这一点,这是我实际尝试做的简化版本。)
$STH = $DBH->query("SELECT * FROM help");
$STH->setFetchMode(PDO::FETCH_ASSOC);
while($row = $STH->fetch()) {
echo $row['text'];
$help_text = $row['text'];
}
echo "->";
echo $help_text;
echo "<-";
使用句柄 DBH 与 MySQL db 的 db 连接很好(未列出)。查询工作正常。循环内$row['text'] 的回声多次正常工作。但是,$help_text 在-> 和<- 之间的回显什么也不做,导致显示-><-。我希望 echo 显示 $row['text'] 的最后一个实例。
请问为什么这不起作用?!
【问题讨论】:
-
你能告诉我们这个查询返回什么吗,如果最后一行是空的,那么 help_text 也将是空的
-
除非我遗漏了一些非常明显的东西,否则您的代码中没有任何内容可以取消设置
$help_text。问题一定出在其他地方。此外,使用var_dump()来检查它的值,而不是普通的echo。 -
离题:注意
PDOStatement实现Traversable,所以你可以使用foreach循环来迭代结果:foreach ($STH as $row) { ... }。 -
是否有可能
$row['text']是一个引用变量,一旦光标经过结果集的末尾,它就会变得未定义? -
SergeS - 你成功了!最后一行的“文本”值为空。很抱歉,谢谢大家的建议。