使用foreach的php PDO fetchAll不工作
为了基于文章(基本上是页面)生成动态站点地图文件,PDO从数据库中进行选择时遇到了一些问题。PHP没有抛出任何错误,因为我在错误日志中没有看到任何错误。这是代码 选择语句片段使用foreach的php PDO fetchAll不工作,php,mysql,xml,pdo,foreach,Php,Mysql,Xml,Pdo,Foreach,为了基于文章(基本上是页面)生成动态站点地图文件,PDO从数据库中进行选择时遇到了一些问题。PHP没有抛出任何错误,因为我在错误日志中没有看到任何错误。这是代码 选择语句片段 $q = $db->prepare("SELECT * FROM articles ORDER BY aid ASC"); $r = $q->fetchAll(PDO::FETCH_ASSOC); 对于每个代码段+XML foreach($r as $row) { $format_date = date('
$q = $db->prepare("SELECT * FROM articles ORDER BY aid ASC");
$r = $q->fetchAll(PDO::FETCH_ASSOC);
对于每个代码段+XML
foreach($r as $row) {
$format_date = date('Y-m-d', $row['date']);
$format_slug = strtolower($row['slug']);
echo '
<url>
<loc>'.$format_slug.'</loc>
<lastmod>'.$format_date.'</lastmod>
<changefreq>monthly</changefreq>
</url>
';
}
因此,当我导航到站点地图url时,将返回echo语句中的预定义数据,在本例中,返回“FOREACH”之前部分中的2个数据片段,当然还有“FOREACH”之后部分中的2个数据片段
然而,由于某种奇怪的原因,没有从数据库中提取数据,即使脚本似乎工作正常。我遗漏了什么吗?您需要执行该语句
$q = $db->prepare("SELECT * FROM articles ORDER BY aid ASC");
$q->execute();
$r = $q->fetchAll(PDO::FETCH_ASSOC);
或者,您可以使用PDO::query。您是否忘记调用
语句上的执行?谢谢,有点奇怪,我忘记了,我想我没有足够的睡眠,哈哈。
echo '</urlset>';
header('Content-Type: text/xml');
$q = $db->prepare("SELECT * FROM articles ORDER BY aid ASC");
$q->execute();
$r = $q->fetchAll(PDO::FETCH_ASSOC);