PHPでMySQLへ接続する方法

PHPはデータベースと親和性が高い言語です。あらかじめ、データベースを扱うための仕組みが内蔵されています。

MySQLをはじめ、さまざまなデータベースと接続することができます。

その仕組みがPDOです。

PDOとは?

PDOは「PHP Data Objects」の略で、PHPをさまざまなデータベースに同じような方法で接続できる仕組みです。

PHP5.1以降、標準で対応しています。

PDOの O は Objects です。つまり、いくつかのクラスから成り立っているオブジェクト指向のデータベース接続方法ですので、まずはインスタンスをnew で作る必要があります。

その方法は以下のように行います。

MySQLでの接続

PDOインスタンスを生成する際のデータソース部分は各データベースによって書き方が異なります。

MySQLの場合、以下のように書きます。

hostが同じコンピュータの場合、省略も可能です。

例えばデータベース名が hanbai の場合、以下のように書きます。

SQLの実行

PDOにおいてもデータベースを扱うための命令はSQLを使います。

SQLを使うには、まずPDOオブジェクトのprepareメソッドでSQLを使うための準備を行います。

例えば、shouhinテーブルが全ての項目を取得するSQLを用意します。

prepareメソッドを実行するとPDOStatementクラスのオブジェクトが返されます。

ただし、prepareメソッドを実行しただけではSQLは実行されたわけではありません。

SQLを実行するには返されたPDOStatementクラスのexecuteメソッドを実行します。

結果の取り出し

SELECT文などの場合、実行した結果を取り出さなくてはなりません。

この場合、PDOStatementクラスのfetchメソッドで結果を一行文取り出すことができます。

取り出した変数は列名の連想配列となっています。

例えば name という列があった場合、以下のように表示できます。

fetchメソッドでは一行文しかデータを取得できないため、全データを取得する場合 fetchAll メソッドを使います。

これは行の配列となっています。

まとめ

ここまでのコード、shouhinテーブルの name 列を表示する方法をまとめます。