PHP-DB - 2. PDO

PDO(PHP Data Objects)はPHPからデータベースにアクセスするための手法の1つです。

もともとPHPにはデータベースベンダー固有のモジュールが用意されており、MySQLに接続するのであればMySQLiモジュール、SQLite3に接続するのであればSQLite3モジュールのように、データベースに合わせたライブラリを使ってプログラミングできます。ただし、この場合、MySQLにアクセスする場合はMySQLを操作する専用のクラス群を扱う必要があり、SQLite3にアクセスする場合はSQLite3を操作する専用のクラス群を扱う必要があります。

一方、PDOはデータベースへのアクセスを抽象化したもので、接続先のデータベースに依存しないPDOライブラリ固有のクラス群を提供します。これによって接続先のデータベースがMySQL、PostgreSQL、SQLite3などいずれであっても同じクラスやメソッドの呼び出しで処理できます。つまりPDOによってデータベース製品に依存しないプログラミングが可能となります。

データベース固有のPDOドライバ

PDOを使う場合は、PDOインターフェイスを実装したデータベースドライバを有効にしておく必要があります。本講座では以降 MySQL(MariaDB) を利用して学習を進めます。

PDOドライバの準備はインストール方法によって異なります。必要に応じて php.ini ファイルを編集して、PDOのMySQLのドライバを有効にしておく必要があります。 php.ini ファイルをテキストエディタで開きます。

Cloud9 で学習している場合、デフォルトでMySQLのPDOドライバは有効となっています。以下の作業は不要です。

;extension=pdo_mysql

上記のように先頭に ; が付いている場合はコメントとして無効化されています。以下のように先頭の; を削除してファイルを保存します。

extension=pdo_mysql

オブジェクト指向プログラミング

PDOライブラリはオブジェクト指向プログラミングに考え方に従って設計されています。本講座を通じて利用するPDOのクラス群は以下のとおりです。

「PDO」という言葉は文脈によって「PDOライブラリ」を指すこともあれば「PDOクラス」を指すこともあります。

まとめ

  • PDOはPHPからデータベースにアクセスするためのライブラリ
  • PDOを使えばデータベース製品に依存せずに同じクラスやメソッドを使ってSQLを実行できる
  • PDOはオブジェクト指向プログラミングに考え方に従って設計されている