我正在尝试获取存储在数据库中的图像名称并显示它,但是它不起作用?谁能告诉我下面的代码有什么问题:
<p class="phase-title-en">
<?php
$title="SELECT DISTINCT record_step_one FROM phase_one_data";
$vartitle=$dbh->prepare($title);
$vartitle->execute();
$result= $vartitle->fetch();
?>
</p>
<?php foreach($result as $fn_title) {
echo "<p> '".$fn_title['record_step_one']."'</p>";
}
?>
我的数据库如下:
答案 0 :(得分:0)
您的主要问题是您正在使用PDO fetch()
方法,该方法仅返回结果集的下一行(在您的情况下为第一行)。
这样,当您执行foreach
时,实际上是在第一行的列上进行迭代(而不是按预期的那样在所有行上进行迭代)。
因此您的代码可能会抛出很多错误消息(实际上是E_NOTICES),告诉您您正在尝试将字符串用作数组,因为循环($fn_title
)中的每个值都是包含第一行的值(5、2,eagle等)。
EDIT :很抱歉,但是在我的原始答复中,我没有注意到查询中的DISTINCT关键字。因此,实际上,foreach将仅运行一次,其值将为字符串eagle
。但是问题仍然是相同的,字符串record_step_one
中没有索引eagle
。
解决方案的第一步是将fetch()
替换为fetchAll()
,并检查是否可能出现其他错误(例如,我们看不到$dbh
在哪里在您的代码中实例化,可能有问题也可能没有问题。