miyabihitoの日記

個人的な技術メモ

PDO

PDO (PHP Data Object)
データアクセス抽象化レイヤ
データベースへのアクセスを抽象化するためのクラス群
PHP5.1から標準で搭載

・PDOクラス
コンストラクタ引数
データソース名(DSN)、ユーザ名、パスワード(、オプション)
DSN例:mysql:host=localhost; dbname=pdotest

queryメソッド
SQL文を実行し、その結果をPDOStatementに格納し返す。

prepareメソッド
SQLを解釈し、PDOStatementオブジェクトを返す。
複数回実行されるようなSQLを扱うのに向いている。

execメソッド
SQL文を発行し、変更を行った行数が戻る。
SELECTの結果は、返されない。

beginTransactionメソッド
トランザクションを開始する。

rollBackメソッド
beginTransaction前の状態に戻る。(ただし、未commit時)

commitメソッド
トランザクションをコミットする。
実行後オートコミットに戻る。

lastInsertIdメソッド
最後に追加されたIDを返す。(更新や参照も?)


PDO::FETCH_ASSOC 結果セットを連想配列で返す指定。
PDO::FETCH_NUM
PDO::FETCH_BOTH
PDO::FETCH_OBJ
PDO::FETCH_BOUND bindParamやbindColumnで、結果セットと変数を結びつて取得する指定。
PDO::FETCH_FUNC コールバックを指定して、結果セットを取得。(取得後に、加工せずに済む)



・PDOStatementクラス
PDOのqueryやprepareメソッドの戻り値として返される

bindParam・bindValueメソッド
prepareメソッドで設定したプレースホルダー(?, :ID等)に値を結びつける。
Paramは変数を、Valueは値を指定する。
第三引数で、データの型を指定可能。
executeメソッド実行前に、呼出す事
#bindParamは、bindColumnと同じように、SELECT文でも使える。
(取得結果を、変数に結びつける事ができる。)

bindColumnメソッド
SELECT文で使う。execute後、fetchする前に、変数とカラムを結びつける。
fetch後、カラムを指定した変数に、その値が入っている。

executeメソッド
プリペアードステートメントを実行するメソッド。
配列を引数に渡し、bindする事もできる。

fetchメソッド
一行単位で結果セットを取得。

fetchAllメソッド
全行の結果セット取得

fetchColumnメソッド
一行単位で指定したカラムの結果を取得

rowCountメソッド
UPDATEやDELETEした行数を返す。


PDOException