PHP入門(応用編)その2
#2 データを全件表示してみよう
try { $dbh = new PDO('mysql:host=localhost;dbname=blog_app','dbuser','testtest'); } catch (PDOException $e) { var_dump($e->getMessage()); exit; } // 処理 $sql = "select * from users"; $stmt = $dbh->query($sql); foreach ($stmt->fetchALL(PDO::FETCH_ASSOC) as $user) { var_dump($user['name']); } echo $dbh->query("select count(*) from users")->fetchColumn() . "records found"; $dbh = null;
// 処理 のところを考える
$sql = "select * from users"; // SQL文 $stmt = $dbh->query($sql); // ステートメント // $dbh の select * from users の結果を $users に連想配列で格納 foreach($stmt->fetchALL(PDO::FETCH_ASSOC) as $user){ var_dump($user['name']); } // $dhb に query users テーブルから カラムのカウント数を取得する命令 + "records found" echo $dbh->query("select count(*) from users")->fetchColumn() . "records found";
連想配列とは添え字付きの配列
添え字は$var['添え字'];
ちなみに処理のところで違う書き方も出来るみたいで
【書き方その1】 $sql = "select * from users"; $stmt = $dbh->query($sql); foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $user) { var_dump($user['name']); } 【書き方その2】 $sql = "select * from users"; foreach ($dbh->query($sql) as $user) { var_dump($user['name']); }
これを見る限りfetchALL(PDO::FETCH_ASSOC)のところ丸まる要らないんじゃないかな。
foreach($stmt as $user){ // 処理 }
これでも動いてくれたけど、何か違う処理をしたときにエラーを吐くのかな。