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 に答える