我有以下选择和while填充变量:
$stmt = $dbh->query('SELECT * FROM agendamentos');
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
print_r ($row);
}
正如您所看到的,一切正常,print_r会显示与过滤器匹配的所有数据。
但是当我尝试打印数组后,它是空的,没有数据,就像这样:
$stmt = $dbh->query('SELECT * FROM agendamentos');
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
}
print_r ($row);
我是php的新手,所以我想我错过了一些关于数组的东西。
答案 0 :(得分:2)
你可以只在while循环中使用数组$ row但是要把它拿出来...... 建议你在循环之前创建一个空数组 并将row的值推入其中,您可以通过访问数组来获取它在循环外部。做这样的事情
$stmt = $dbh->query('SELECT * FROM agendamentos');
$row_result = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
array_push($row_result,$row);
}
echo "<pre>";
var_dump($row_result);
echo "</pre>";
die;
答案 1 :(得分:1)
这是循环的工作方式,如果你想在循环结束后得到数据只是将它保存在一个变量中
$stmt = $dbh->query('SELECT * FROM agendamentos');
$result=array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$result[]=$row;
}
print_r ($result);
请注意。输出将是数组数组。