我正在使用PDO,当我回显foreach循环时,我有代码输出我的记录数组。但是我无法弄清楚如何在变量中存储它。如果我将echo
替换为$foo =
,则该变量为空。我的大脑被卡住了,我知道这并不难,但我想不出我需要改变什么。
我希望所有行都存储在变量中,例如
['2013-08-09','Heptageniidae',3],['2013-08-09','Ephemerellidae',2],
由于
$sql = "SELECT * FROM userrecords";
$stmt = $conn->prepare($sql);
$stmt->execute();
// $ data = $ stmt-> fetchAll();
echo json_encode( $stmt->fetchAll(PDO::FETCH_ROW);
//foreach ($data as $row):
// echo "['" . $row['eventdate'] . "','" . $row['scientificname'] . "'," . $row['category_of_taxom'] . "],";
//endforeach
答案 0 :(得分:1)
这是正确的做法
echo json_encode( $stmt->fetchAll(PDO::FETCH_NUM) );
这就是你要求的
$foo = '';
foreach ($data as $row)
{
$foo .= "['" . $row['eventdate'] . "','"
. $row['scientificname'] . "'," . $row['category_of_taxom'] . "],";
}
echo $foo;
错了。
永远不要手动创建JSON字符串。
答案 1 :(得分:-1)
看起来你没有做错任何事。 您可能想要检查$ stmt-> errorInfo();对于数据库问题,你可以使用var_dump();或print_r();在php中检查fetchAll()命令返回的数组的内容。