PHPソース解説 ~ PHP入門(8)の connect_pdo.php ~

PHP入門

⑧ データベース接続(PDO)の詳しい解説

ここでは、データベースに接続するための処理を解説します。
このコードは、前の記事で紹介した post.php から読み込まれて使われています。


① 設定ファイルを読み込む

この行は、


「db_config.php の中身を読み込み、その結果を $config という箱に入れる」

という意味です。

db_config.php には、

  • データベースの場所
  • ユーザー名
  • パスワード

などの設定が書かれています。

require は、
「必ず必要なファイルを読み込む」という命令です。

__DIR__ は、
「このPHPファイルが置かれているフォルダ」を表します。


② DSN(接続先情報)を作る

ここでは、データベースの住所のような情報を作っています。

$dsn は、


「どのデータベースに、どうやって接続するか」

をまとめた文字列です。


sprintf の意味

sprintf は、


「決まった形の文章に、あとから値を当てはめて文字を作る」

ための命令です。

この部分では、

という型に対して、

  • $config['host']
  • $config['dbname']
  • $config['charset']

を順番に当てはめています。

%s は、


「ここに文字を入れる場所」

という意味です。


③ try ~ catch とは何か

trycatch は、


「エラーが起きるかもしれない処理を安全に実行する」

ための書き方です。

データベース接続は失敗することがあるため、
この形で書くのが一般的です。


④ PDO を使ってデータベースに接続する

この行は、


「PDOという仕組みを使って、データベースに接続し、
その接続結果を $pdo という箱に入れる」

という意味です。


new PDO の意味

new PDO は、


「データベースとつながるための新しい接続を作る」

という命令です。

  • $dsn → 接続先の情報
  • $config['user'] → ユーザー名
  • $config['pass'] → パスワード

オプション設定の意味

  • PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    エラーが起きたら、try~catch で捕まえられるようにする
  • PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    データを「配列(カラム名つき)」で受け取る
  • PDO::ATTR_EMULATE_PREPARES => false
    安全なプリペアドステートメントを使う

⑤ 接続に失敗したときの処理

もしデータベースに接続できなかった場合、
ここが実行されます。

exit によって、


それ以上プログラムを動かさず、処理を止めます。


まとめ

このコードは、

  1. 設定ファイルを読み込む
  2. 接続先情報(DSN)を作る
  3. PDOでデータベースに接続する
  4. 失敗したら安全に止める

という流れで動いています。

初心者のうちは、
「$pdo はデータベースにつながった証拠の箱」
と考えると理解しやすくなります。

コメント

タイトルとURLをコピーしました