PHPライブラリ dfwLib

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' );

DBアクセスクラスの使い方

 

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() );