PHP:PDO foreach不工作

时间:2016-02-12 13:16:02

标签: php mysql pdo foreach

我将使用以下方法执行foreach循环打印数组值:

GetHolidays()

但是foreach循环似乎没有执行,我的err.log中没有任何内容

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:5)

两个选项:

$query = $db->prepare("SELECT * FROM products WHERE category = 1");
$query->execute();

while($row = $query->fetch()){
    var_dump($row);
}

Fetch()一次返回一行,因此您必须执行while循环才能获取所有结果。

$query = $db->prepare("SELECT * FROM products WHERE category = 1");
$query->execute();
$results = $query->fetchAll();    

foreach($results as $row){
    var_dump($row);
}

在上面的示例中,您使用fetchAll()一次获取所有行。然后在这些行上使用foreach循环。

首先,您必须使用query()函数准备查询。然后你必须用execute()执行它,但是你还必须检索结果,这不是自动完成的。为此,请使用fetch()或fetchAll()

请看以下链接:

http://php.net/manual/en/pdostatement.fetch.php http://php.net/manual/en/pdostatement.fetchall.php

答案 1 :(得分:2)

如何PDO:

$stmt = $db->prepare("SELECT * FROM products WHERE category = 1");
$stmt->execute();
$products = $stmt->fetchAll();

foreach($products as $product) {
var_dump($product);
}