关闭后如何保持数组内容

时间:2017-09-08 13:32:09

标签: php mysql

我有以下选择和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的新手,所以我想我错过了一些关于数组的东西。

2 个答案:

答案 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);

请注意。输出将是数组数组。