print_r()显示sql语句而不是打印pdo结果集?

时间:2012-11-16 11:34:37

标签: php pdo

我正在尝试调试以下查询为什么不返回结果集。当我尝试使用print_r调试它以查看此sql返回的内容时,我得到sql语句本身而不是结果集。有人可以帮我解释为什么这不会返回结果集吗?

编辑:我正在使用PHP数据对象的查询功能

  $query = "select * from categories order by categoryID";

  $categories = $db->query($query);

  print_r($categories);

2 个答案:

答案 0 :(得分:5)

因为该方法返回PDOStatement对象,如所述in the manual所述,而不是关联数组。您必须首先从此对象获取结果集。

您可以使用fetchAll()在关联数组中获取所有结果(或根据您的喜好获取任何其他PDO获取方法):

print_r($categories->fetchAll());

当您遇到这样的问题时,建议您阅读本手册。

答案 1 :(得分:0)

$sql = "select * from categories order by categoryID";

$query = $db->query($sql);

$categories = $query->fetchAll();

echo "<pre>";
print_r($categories);
echo "</pre>";