2013-08-21 3 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().