PDO将输出的数组存储到变量中


PDO store outputted array into variable

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

以下是的正确操作方法

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

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