次のコードがあります。
$res = $db->getArticles($db);
$hey = print_r($res, TRUE);
echo $hey['0'];
のコードは次の$db->getArticles
とおりです。
public function getArticles() {
$array = array();
try {
$sth = $this->db->prepare("SELECT * FROM posts ORDER BY id");
$sth->execute();
foreach ($sth->fetchAll(PDO::FETCH_ASSOC) as $row) {
$array[] = $row;
}
return $array;
} catch (Exception $e) {
}
}
ロジックは、関数がデータベースにクエリを実行し、すべてを配列に入れるというものです。テーブル内の行数は常にかなり少ないため、パフォーマンスは問題になりません。
以下は、上記の最初のコード スニペットの出力です。
echo $hey['0']; // prints "A" (without the quotes).
echo $hey['1']; // prints "r"
echo $hey['2']; // prints "r"
echo $hey['3']; // prints "a"
echo $hey['4']; // prints "y"
ご覧のとおり、「Array」という単語が綴られています。
echo $hey
以下を出力します。
Array ( [0] => Array ( [id] => 1 [author] => 0 [content] => This Is a Test [publication_date] => 1380380992 ) )
私の最終目標は、個々の値を変数に格納し、それを使って何かをすることです。これはすべて、配列で実行される for ループ内で発生するため、各行から情報を取得できます。
私は何を間違っていますか?