DBクラス マニュアル - dfwLib2
DBクラスマニュアル
DB設定
デフォルトDB接続情報はCONFIGファイルに記載します。
- dfw_config.php 設定箇所
// === DB設定
define( 'DFW_DB_DSN', 'mysql:dbname=hoge;host=localhost' );
define( 'DFW_DB_USER', 'hoge' );
define( 'DFW_DB_PASS', 'hoge' );
public function DB( $db_dsn = , $db_user = __, $db_pass = )
コンストラクタ。
DB接続を行う。
DSN情報を定義しないと設定ファイルの情報を使用してDB接続する。
- 記述例
$db = new DB();
- 記述例
$db = new DB( 'mysql:dbname=ore;host=localhost', 'user', 'pass' );
- 記述例
$db = new DB( 'master' );
- 戻り値
DBオブジェクト
public function isConnect()
DB接続が成功したかをチェックする関数
- 記述例
$db = new DB();
if ( ! $db->isConnect() ) {
echo '接続エラー';
}
- 戻り値
接続成功:true (boolean)
接続失敗:false (boolean)
public function setNames( $code = 'utf8' )
SQL文「SET NAMES XXXX」を実行する。
- 記述例
$db = setNames();
- 記述例
$db = setNames( 'sjis' );
- 記述例
$db = setNames( 'ujis' ); // EUC-JP
- 戻り値
なし
public function close()
DB接続を解除する。
- 記述例
$db->close();
- 戻り値
なし
public function setSql( $sql )
SQL文を定義する。
パラメータマークは名前指定(:name等)で指定する。
- 記述例
$db->setSql( 'select * from hoge where name=:name' );
- 記述例
$db->setSql( 'select name,ip,time from hoge where name=:name' );
- 戻り値
なし
public function getSql()
実際に実行されたSQL文を取得する。
デバック時に使用
- 記述例
echo $db->getSql(); // 実際に実行されたSQL文を取得
- 記述例
echo $db->getSql('raw'); // setSql関数で登録したSQL文を取得
- 戻り値
なし
public function set( $key, $val )
SQLのパラメータマーク(:name)に値を設定する。
パラメータマーク先頭の「:」は記載しない。
- 記述例
$db->set( 'name', 's-tanno' );
- 戻り値
なし
public function sets( $arr )
SQLのパラメータマーク(:name等)に値を設定する。
連想配列を利用して一度に複数の設定します。
- 記述例
$data['name'] = 's-tanno';
$data['group'] = 'PeX';
$db->sets( $data );
- 戻り値
なし
public function setIn( $key, $vals )
SQL「条件式IN」のパラメータマーク(:name等)に値を設定する。
パラメータマーク先頭の「:」は記載しない。
- 記述例
$db->setSql( 'SELECT * FROM table WHERE name IN (:name)' );
$db->set( 'name', array('fuga', 'hoge') );
- 戻り値
なし
public function exec()
定義したSQL文を実行する。
- 記述例
$rtn = $db->exec();
echo $trn;
- 戻り値
成功:SELECTの場合 0以上の結果バッファにたまった件数(int)
成功:INSERT,UPDATEの場合 0~nの反映に成功した件数(int)
失敗:false(boolean)
public function fetch()
SELECT実行結果から結果を1つ取得する。
結果はDBカラム名の連想配列で取得される。( $item['name'] 等)
- 記述例
while( true ) {
$item = $db->fetch();
if( $item === false ) break;
var_dump( $item );
}
- 戻り値
取得データあり:DBカラム名の連想配列
取得データなし:空の配列
取得エラー:false(boolean)
public function fetchAll()
SELECT実行結果から結果を全て取得する。
結果はDBカラム名の連想配列の配列で取得される。( $item[0]['name'] 等)
- 記述例
$items = $db->fetchAll();
var_dump( $items );
- 戻り値
取得データあり:DBカラム名の連想配列
取得データなし:空の配列
取得エラー:false(boolean)
public function execFetchAll()
exec() と fetchAll() を実行する関数。
定義したSQL文を実行し、SELECT実行結果から結果を全て取得する。
結果はDBカラム名の連想配列の配列で取得される。( $item[0]['name'] 等)
- 記述例
$items = $db->execFetchAll();
var_dump( $items );
- 戻り値
取得データあり:DBカラム名の連想配列
取得データなし:空の配列
取得エラー:false(boolean)
public function execFetchOne()
exec() と fetch() を実行する関数。
定義したSQL文を実行し、SELECT実行結果から結果を1レコード取得する。
結果はDBカラム名の連想配列で取得される。( $item['name'] 等)
- 記述例
$item = $db->execFetchOne();
var_dump( $item );
- 戻り値
取得データあり:DBカラム名の連想配列
取得データなし:空の配列
取得エラー:false(boolean)
public function insert( $tableName, $params )
INSERTを簡単に行う関数。
テーブル名と連想配列でINSERT内容を引数で渡すと、INSERTが実行する。
- 記述例
$db = new DB();
$params = array( 'title'=>'ほげタイトル', 'description'=>'ほげんほげん' );
$ret = $db->insert( 'my_table', $params ); // INSERT実行
文字列 NOW() を指定するとMySQL関数 NOW() が使用されます。
$params = array( 'title'=>'ほげタイトル', 'created_at'=>'NOW()' );
- 戻り値
成功:登録レコード件数
失敗:false(boolean)
public function multiInsert( $tableName, $params )
マルチINSERTを簡単に行う関数。
テーブル名と連想配列でINSERT内容を引数で渡すと、INSERTが実行する。
- 記述例
$db = new DB();
$params = array();
$params[] = array( 'title'=>'ほげタイトル1', 'description'=>'ほげんほげん1' );
$params[] = array( 'title'=>'ほげタイトル2', 'description'=>'ほげんほげん2' );
$params[] = array( 'title'=>'ほげタイトル3', 'description'=>'ほげんほげん3' );
$ret = $db->multiInsert( 'my_table', $params ); // マルチINSERT実行
文字列 NOW() を指定するとMySQL関数 NOW() が使用されます。
$params[] = array( 'title'=>'ほげタイトル', 'created_at'=>'NOW()' );
- 戻り値
成功:登録レコード件数
失敗:false(boolean)
トランザクション処理
public function beginTransaction()
トランザクションを開始する。
- 記述例
$db->beginTransaction();
- 戻り値
成功:true(boolean)
失敗:false(boolean)
public function commit()
トランザクションをコミットする。
- 記述例
$db->commit();
- 戻り値
成功:true(boolean)
失敗:false(boolean)
public function rollBack()
トランザクションをロールバックする。
- 記述例
$db->rollBack();
- 戻り値
成功:true(boolean)
失敗:false(boolean)
public function lastInsertId()
最後に挿入された行の ID あるいはシーケンスの値を返す。
PDO::lastInsertId() のラッパー関数。
- 記述例
$nowLine = $db->lastInsertId();
ステータス・エラー情報取得
public function errorInfo()
DBエラー内容を返す。
PDO::errorInfo() のラッパー関数。
- 記述例
$nowLine = $db->errorInfo();
public function getDBHandle()
DB接続ハンドルを返す。
デバック時の確認用
- 記述例
var_dump( $db->getDbHandle() );
public function getPDOStatement()
DB接続 PDO Statement を返す。
デバック時の確認用
- 記述例
var_dump( $db->PDOStatement() );
public function getPDOException()
PDOエラー時に直前のPDOエラーの「PDOException オブジェクト」を取得する。
- 記述例
var_dump( $db->getPDOException() );
public function getErrorMessage()
PDOエラー時に直前のPDOエラーの「エラーメッセージ」を取得する。
- 記述例
var_dump( $db->getErrorMessage() );
public function getErrorCode()
PDOエラー時に直前のPDOエラーの「エラー番号」を取得する。
- 記述例
var_dump( $db->getErrorCode() );