PHP 入門 | PDO を使ったデータベースアクセス | データベースにアクセスする PDO とは

Web アプリケーションではさまざまなデータを扱う。そのため、主にデータベースを利用してデータを管理する場合が多い。データベースにはさまざまな種類があるが、最も一般的に広く使われているのは「リレーショナルデータベース」である。

このリレーショナルデータベースに問い合わせるための専用言語である SQL を使い、データベースに必要な情報などを調べて送るよう依頼する。現在広く使われている MySQL や Oracle、PostgreSQL、また最近では Android や iPhone の内部データベースとしても活躍している SQLite などは、すべてこのリレーショナルデータベースの一種である。もちろん他にもデータベースは多く存在するが、現段階では「データベース = リレーショナルデータベース」と考えておくとよい。

データベース利用の 3 つの方法

PHP には、リレーショナルデータベースを使用するための機能がいくつか含まれている。おおまかには、次の 3 つに整理できる。

関数による利用

たとえば MySQL であれば、mysql_OO のような形でデータベースアクセス用の関数が一通り用意されている。この関数を呼び出して使用する。PHP の初期のころから用意されていたもので、PHP 5 より前のものでも使用できる。ただし、すべての関数を呼び出して使用するというのは、今日のオブジェクト指向プログラミングとは離れた方式だと言える。つまり、「PHP 5 より前の古い PHP で使われていた方式」である。

オブジェクトによる利用

たとえば MySQL であれば、new mysqli のようにして MySQL アクセスオブジェクトを作成し、その中のメソッドを呼び出して使用する。これは上記の関数群をオブジェクトとしてまとめたもので、ひとまずオブジェクト指向でデータベースアクセスできるようにする。

PDO による利用

PDO は “PHP Data Objects” の略である。PDO というクラスのオブジェクトを作成し、そのメソッドを呼び出してデータベースを使用する。他の方法と大きく異なる点は、「データベースであればすべて同じ方法で扱える」という点である。オブジェクトを作成するときにデータベースの種類などを設定するだけで、その後はデータベースの種類を意識せずに使用できる。

 

ここでは「PDO を使ったアクセス」について説明する。これは PHP 5.1 で新しく提供された機能で、単にオブジェクト指向の手段を提供するだけでなく、データベースの違いを吸収し、アクセス対象が何であっても変わらない処理を作成できるように設計されている。これから新しく学ぶのであれば、PDO が最もよい。