phpPHP開発 虎の巻

データベースの利用

カテゴリ:データベース

1.PDOとは

PDO=PHP Data Objects

データベースを使うためのオブジェクト MySQL、SQLiteなど複数のデータベースに対応している PHP5.1以降、標準で対応。

2.PDOオブジェクトの生成

○書式 変数 = new PDO(データソース,ユーザ名,パスワード);

データソースの書き方はデータベースによって異なる。

○mysqlの場合のデータソース書式

mysql:dbname=データベース名

または

mysql:dbname=データベース名; host=ホスト名
○sqliteの場合のデータソース書式

sqlite:ファイルパス

ユーザ名とパスワードは不要
○オブジェクトの生成例(mysql)
$db = new PDO("mysql:dbname=hanbai","root","root");
○オブジェクトの生成例(sqlite)
$db = new PDO("sqlite:db/mydb.db");

3.prepareメソッド

SQLを単純に発行するには まずprepareメソッドを使用し、SQLの準備を行う。

○書式
変数 = PDOオブジェクト->prepare(SQL文字列);
例:
$sql = $db->prepare('SELECT * FROM shouhin');

戻り値はPDOStatementクラスのオブジェクトとして返される。PDOStatementクラスはSQLのステートメント=命令を表す。このオブジェクトを使い、SQLを実行し、結果を得る。

4.executeメソッド

prepareメソッドを行っても、SQL実行の準備をしただけで、SQL自体はまだ実行されていない。SQLの実行はPDOStatementクラスの executeメソッドを使用する。

○書式

戻り値 = オブジェクト->execute();
戻り値がTRUEの場合、処理が成功となる。
単純な使用例:
$sql->execute();
結果を判定する場合の例:
if( $sql->execute() ){
	//	成功した場合の処理
}else{
	//	失敗した場合の処理
}

5.結果の取り出し

executeメソッドを実行すると、そのオブジェクトから結果を取り出すことができる。 結果を一件取り出すには fetchメソッドを使用する。

○書式
結果 = オブジェクト->fetch();

結果は連想配列となっており、キーは、フィールド名。

例:
$data = $sql->fetch();

echo $data['sname'];
echo $data['tanka'];

fetchメソッドは繰り返して使うことで、次のデータを取得できる。

例:
$data1 = $sql->fetch();	// 1つ目のデータ
$data2 = $sql->fetch();	// 2つ目のデータ
$data3 = $sql->fetch();	// 3つ目のデータ

しかし、全データを一度に取得するには fetchAllメソッドが便利である。

6.全データの表示

全データを取得する場合 fetchAll メソッドを使う。

○書式
結果配列 = オブジェクト->fetchAll();
例: $all = $sql->fetchAll();

結果配列はfetchで取り出せる行の配列となっている。 これをforeachで一つずつ取り出すには以下のようにする。

全てのデータを表示する例:
foreach ($all as $data)
{
	echo $data['sname'];
	echo $data['tanka'];
}

カテゴリ:データベースの記事