2013-08-21 102 views
0

我使用的是PDO,当我回显foreach循环时,我的代码输出了我的记录数组。但我不知道如何将其存储在变量中。如果我将echo替换为$foo =,则该变量为空。我的大脑被卡住了,我知道这并不难,但我不能认为我需要改变。PDO将输出数组存储到变量中

我希望所有的行都存储在变量中,例如 ['2013-08-09','Heptageniidae',3],['2013-08-09','Ephemerellidae',2],

由于

$sql = "SELECT * FROM userrecords"; 
$stmt = $conn->prepare($sql); 
$stmt->execute(); 

// $数据= $ stmt->使用fetchall();

echo json_encode($stmt->fetchAll(PDO::FETCH_ROW); 


    //foreach ($data as $row): 
    // echo "['" . $row['eventdate'] . "','" . $row['scientificname'] . "'," . $row['category_of_taxom'] . "],"; 
    //endforeach 

回答

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

+0

我没有从这得到任何输出。我把它放在'$ stmt = $ conn-> prepare($ sql)'之后,而不是所有的东西';' – Skot

+0

你应该把它放在执行后 –

+0

我编辑了原始问题,仍然没有结果输出?感谢关于使用json的信息 – Skot

-1

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