首页 文章

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

提问于
浏览
0

我正在使用PDO,当我回显foreach循环时,我有代码输出我的记录数组 . 但是,我无法弄清楚如何将其存储在变量中 . 如果我用 $foo = 替换 echo ,则变量为空 . 我的大脑被卡住了,我知道这并不难,但我想不出我需要改变什么 .

我希望所有行都存储在变量中,例如 ['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

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

  • 1

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

相关问题