SQLのログが見たい場合に、バインドパラメータが?のままなので
不便である。あくまで簡易的なんだけど、メソッドを作った。
SC_Queryクラスに以下のgetBindSqlLogメソッドを追加。
SC_Queryクラスにselectメソッドがあるので、そこに以下追加
/** * バインドパラメータをバインドしたかたちででのSQLログを出力する * @param String $sqlse $this->getSqlの戻り値(バインドパラメータ以外は組み立てられたかたち) * @param array $arrWhereVal バインドパラメータの配列 * * ※preg_replaceを置換に使用しているので、文字化けするかもしれない */ public function getBindSqlLog($sqlse, $arrWhereVal) { foreach ($arrWhereVal as $key=>$value) { //数値か否かチェックし、数値じゃない場合はシングルクオートでがこむ //TODO カラムの型判定をしていないので簡易的 if(!preg_match("/^[0-9]+$/",$value)){ $value = "'" . $value . "'"; } $sqlse = preg_replace("/\?/", $value, $sqlse, 1); } echo $sqlse ."\n"; } 追加対象のメソッド public function select($cols, $from = '', $where = '', $arrWhereVal = array(), $fetchmode = MDB2_FETCHMODE_ASSOC) { $sqlse = $this->getSql($cols, $from, $where, $arrWhereVal); $this->getBindSqlLog($sqlse, $arrWhereVal); ← これこれ return $this->getAll($sqlse, $arrWhereVal, $fetchmode); }