我的网站上有一个页面名称数据库,我想循环查询并输出每个页面名称。我使用PDO完成了我的查询:
// Site Menu Items
try {
$mds_system1 = new PDO('mysql:dbname=mds_system;host=127.0.0.1', 'root', '');
} catch (PDOException $ex) {
echo 'Connection failed: ' . $ex->getMessage();
}
$sql = "SELECT longName, shortName, `position`, standalone FROM `site-menu`";
$sitemenu = $mds_system1->query($sql);
然后我循环查询(CMS的一部分来编辑网站上的页面):
$n=1;
foreach ($sitemenu as $item) {
echo "<a href='?page=edit&edit=".$item['shortName']."' target='_self'>";
if ($n==count($sitemenu)) {
echo $item['longName']."</a><br />";
}
else {
echo $item['longName']."</a> | ";
}
$n++;
}
我希望在最后一个结果之后没有分隔符,并且根据我见过的许多示例,此代码应该工作。但是,无论结果数量如何,“count($ sitemenu)”变量始终设置为“1”。因此,没有真正发生。是我用PDO尝试不可能的代码吗?
答案 0 :(得分:0)
你忘记了一项必要的操作
除了查询执行之外,您还必须使用fetchAll()
方法获得实际结果
你会得到你想要的阵列。
所以,实际上你的问题与标题中的问题无关,而是与基本的PDO用法有关。
当然缺乏调试。
因为您必须自己提出评论中的问题,并将问题归结为$sitemenu
内容。