【第7話】作って学ぶPHP!初心者による実践録!~一覧画面②~

これからPHPの勉強を始める方に向けて!

PHP初心者の私が、実際に簡単なWebサイトを作成しながら学んでいく実践録です!!

この記事の目標は、同じく初心者の方が、実際に「作って学ぶ」を実践出来る内容を提示することです。

私自身は、他言語(C#、Javascriptなど)でのプログラミング経験がありますが、プログラミングを始めて勉強する方でも理解出来るように心がけて書いていきます。

ただし、HTML・CSSに関しては説明を省きます。ご了承ください。

また、分かりにくい所等あればコメント等頂けたら凄く喜びます。

こちらの記事は、「第7話」となっております。
第1話から読むことをオススメします!

 

データベース接続ロジック

さっそく前回の続きをやっていきましょう!!

第6話の最後に、データベースの接続ロジックの完成形を紹介しました。

DB接続ロジック

DB接続ロジック

ただ、ここに出てくる「try ~ catch」とか「setAttribute」とか。
知らないものが出てきていました。

まずはここの説明から入っていきます!

 

try・catchとは

ざっくりとどんなものか。

ガンガン攻めていけ!!(try)
骨は拾ってやる!!(catch)

って感じです。
分かりにくかったですかね・・・。

 

書き方と合わせて、どういったことをやっているかを見てみると、

try {
 出来るか分からないけど、とりあえずやってみる処理
 成功したら特になにもなし

} catch {
 試してみたけど、ダメだったときは、ここの処理
}

こんな感じになっています。

 

今回のデータベース接続の場合だと、

 

接続できるか分からないけど、とりあえず接続してみる

というロジックを「try」の中に、

接続できなかったから、エラーメッセージを出しておこう

というロジックが「catch」の中に

 

書かれています。

このtry・catchは、使う機会も多いので、覚えておきましょう!!
 




setAttributeとは

「Attribute」は日本語で「属性」を意味します。
なので、日本語に直訳すると、「属性を設定する」ですね。

書き方としては、下の通りです。

「setAttribute(何の属性に設定するか, 設定したい値)」
なので、

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

と書くと、
エラーモードという属性に、exceptionを投げるように設定する。
という意味になります。

exceptionは、簡単に言うと「何故エラーになったかの情報を持っているもの」という認識をしてもらえばオッケーです!!

 

「exceptionを投げる」ということで、
こいつは、「catch」で受け取ることが出来ます。

なので、

catch (PDOException $e) {
 echo $e->getMessage();
 exit;
}

こう書くと、
エラー情報をキャッチして、エラー情報の中のエラーメッセージを出力し、処理を終える(exit)
となります。

 

$pdo_dsn変数の中身について

PDOのインスタンス作成する際に、「データベース情報」をカッコの中に書く必要がありましたが、データベース情報の書き方を説明していませんでしたね。

といっても、簡単で

・何のデータベースを使うか
・データベースはどこにあるか
・使用するデータベース名は何か
・文字コードは何を使うか

を設定してあげればオッケーです!

 

なので、今回だと、

mysql:dbhost=localhost;dbname=’ . $db_name . ‘;charset=utf8;

・MySQLを使う
・データベースはローカル環境にある
・データベース名は、「anythingbookmarker」($db_nameという変数の中身)
・文字コードは、utf-8

と設定してあげています。

 

以上、「データベースの接続ロジックの完成形」に関してざっくり説明が終わりです!
これで、データベースへの接続部分は完璧ですね!!

 

それでは次は、
実際にデータベースに対して処理を実行する部分をやっていきましょう!!

 




データベースから情報を取得する

データベースとの接続が出来たので、早速データベースから情報を取得してみます!!

今回、データベースから情報を取得する処理でやりたいことは、

bookmarkというテーブルから、全てのデータを取得する

という単純なものですね。

これを、データベースに対して処理を命令する「クエリ」で書くと、

「SELECT * FROM bookmark」
となります。

「FROM」の後に、テーブル名を指定して、
「*」はそのテーブルの列全てを意味します。

ということで、今回の処理を実際に書いてみましょう。

$sql = “SELECT * FROM bookmark”;
$stmt = $db->query($sql);

こうなりました!
「$sql」という変数にクエリを収納します。

そして、「$db->query($sql)」の部分が$dbに対してクエリを実行する処理です。

「$stmt」には、クエリを実行して得られた結果が収納されます。

「$stmt」の中に、「SELECT * FROM bookmark」で取得したデータが収納される

ということですね!!

はい!
ここまでで、DBへの接続から、データの取得までが完了しました!!
ちょっと改めてソースコードを見ておきましょう。

SELECT

SELECT

あとは、取得したデータを表示する部分を実装していけば
一覧画面は完成ですね!!

 

今回はここまで!

ちょっと長くなってしまったので、今回はここまで!!
次回、取得したデータを実際に表示する所を実装していきます。
これが出来れば、一覧画面は完成です!!

記事の更新は、Twitterにて発信していきますので、フォローして頂ければ嬉しいです!!

 

質問・指摘はこちらから

プログラミング初心者の方は、本当にわからないことだらけだと思います。
そんな方へ、少しでも役立つことが出来れば嬉しいです。

分からない所があれば、こちらの記事にコメントを入れてください。
出来る限り回答していきます!
Twitterからの質問でもかまいません。

また、間違い等あればご指摘頂けると幸いです。
PHPに関しては、私自身キャッチアップ中のため至らない点もあるかと思います。
ご指摘頂いた内容は、随時修正していきます!

 

 

それでは、
のらくら でした!!

1 Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です