Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用foreach的php PDO fetchAll不工作_Php_Mysql_Xml_Pdo_Foreach - Fatal编程技术网

使用foreach的php PDO fetchAll不工作

使用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('

为了基于文章(基本上是页面)生成动态站点地图文件,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('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);