0

我正在使用 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 
4

2 回答 2

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 字符串。

于 2013-08-21T08:17:09.730 回答
-1

看起来你没有做错什么。您可能需要检查 $stmt->errorInfo(); 对于数据库问题,您可以使用 var_dump(); 或 print_r(); 在 php 中检查 fetchAll() 命令返回的数组的内容。

于 2013-08-21T08:25:06.793 回答