データベースの利用
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(); /pre>
結果配列はfetchで取り出せる行の配列となっている。 これをforeachで一つずつ取り出すには以下のようにする。
全てのデータを表示する例: foreach ($all as $data) { echo $data['sname']; echo $data['tanka']; }