【问题标题】:PDO store outputted array into variablePDO 将输出数组存储到变量中
【发布时间】:2013-08-21 08:15:20
【问题描述】:

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

【问题讨论】:

    标签: php for-loop pdo fetchall


    【解决方案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 字符串。

    【讨论】:

    • 我没有得到任何输出。我把它放在$stmt = $conn->prepare($sql); 之后
    • 而你应该在执行后放置它
    • 我已经编辑了原始问题,仍然没有输出结果?感谢您提供有关使用 json 的信息
    • 好吧,如果是我的话,那是个错字。但是你应该开启错误报告
    • 我在使用error_reporting(E_ALL); ini_set( 'display_errors','1');?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2018-01-27
      • 2023-02-13
      • 2017-06-11
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多