2011年11月20日に投稿

[PHP]PDOクラスを使ってデータベースにアクセスする

これまでPHPからMySQLに接続するときはPEARのMDB2を使っていたのですが、PEARがインストールされていない環境でデータベースに接続するには何か方法はないのかと思い調べました。するとPDOクラスという便利そうなものを見つけました。

PDOクラスを使用すれば、ライブラリを読み込むこともなくいきなりデータベースに接続する機能を利用できます。ただし、PDOクラスが利用できるように設定されている必要があるので予め動作させたいサーバーで動かしてみる必要があります。ServerQueenの共有サーバー、ロリポップの共有サーバーで動きましたので余程古い環境でなければ大丈夫かもしれません。

下記のコードはMySQLに接続し、dataテーブルから全てのデータを取り出したあと、urlフィールドの内容を1行ごとに改行して表示します。

2行目
PDOクラスのコンストラクタに、データベースのホスト名(HOSTNAMEのところ。多く場合localhost。)、データベース名(DATABASENAMEのところ)、ユーザー名(USERNAMEのところ)、パスワード(PASSWORDのところ)を渡してインスタンスを作成します。

3行目
queryメソッドを使うとSQLを送信できます。問い合わせの結果がオブジェクトとして返ってきますので、$resultsに代入します。

4行目
結果として受けとったオブジェクトのfetchメソッドを使うとデータを1行ごとに取り出すことができます。fetchメソッドに引数としてPDO::FETCH_ASSOCを渡すと、データベースのフィールド名をキーとした連想配列が返されるようになります。

5行目
従って$rowには連想配列でデータが保存されていますので、urlフィールドのデータにアクセスしたい場合は、$row[‘url’]とします。

7行目
データベースへの接続を閉じるには、接続時に作成したインスタンスの$pdoにnullを代入するか、unset($pdo)として削除をすれば閉じることができます。

関連記事

Leave a Reply