Changeset 23126 for branches/version-2_13_0/data/class/SC_Query.php
- Timestamp:
- 2013/08/26 15:52:37 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_13_0/data/class/SC_Query.php
r23019 r23126 32 32 class SC_Query 33 33 { 34 var$option = '';35 var$where = '';36 var$arrWhereVal = array();37 var$conn;38 var$groupby = '';39 var$order = '';40 var$force_run = false;34 public $option = ''; 35 public $where = ''; 36 public $arrWhereVal = array(); 37 public $conn; 38 public $groupby = ''; 39 public $order = ''; 40 public $force_run = false; 41 41 /** シングルトン動作のためのインスタンスプール配列。キーは DSN の識別情報。 */ 42 static $arrPoolInstance = array();42 public static $arrPoolInstance = array(); 43 43 44 44 /** 45 45 * コンストラクタ. 46 46 * 47 * @param string $dsnデータソース名47 * @param string $dsn データソース名 48 48 * @param boolean $force_run エラーが発生しても処理を続行する場合 true 49 * @param boolean $new 新規に接続を行うかどうか50 */ 51 function __construct($dsn = '', $force_run = false, $new = false)49 * @param boolean $new 新規に接続を行うかどうか 50 */ 51 public function __construct($dsn = '', $force_run = false, $new = false) 52 52 { 53 53 if ($dsn == '') { … … 94 94 * シングルトンの SC_Query インスタンスを取得する. 95 95 * 96 * @param string $dsnデータソース名97 * @param boolean$force_run エラーが発生しても処理を続行する場合 true98 * @param boolean $new新規に接続を行うかどうか96 * @param string $dsn データソース名 97 * @param boolean $force_run エラーが発生しても処理を続行する場合 true 98 * @param boolean $new 新規に接続を行うかどうか 99 99 * @return SC_Query シングルトンの SC_Query インスタンス 100 100 */ 101 static function getSingletonInstance($dsn = '', $force_run = false, $new = false)101 public static function getSingletonInstance($dsn = '', $force_run = false, $new = false) 102 102 { 103 103 $objThis = SC_Query_Ex::getPoolInstance($dsn); … … 111 111 * 厳密な意味でのシングルトンではないが、パフォーマンス的に大差は無い。 112 112 */ 113 113 114 return clone $objThis; 114 115 } … … 120 121 * @return boolean 121 122 */ 122 function isError()123 public function isError() 123 124 { 124 125 if (PEAR::isError($this->conn)) { … … 132 133 * COUNT文を実行する. 133 134 * 134 * @param string $tableテーブル名135 * @param string $wherewhere句136 * @param array$arrWhereVal プレースホルダ135 * @param string $table テーブル名 136 * @param string $where where句 137 * @param array $arrWhereVal プレースホルダ 137 138 * @return integer 件数 138 139 */ 139 function count($table, $where = '', $arrWhereVal = array())140 public function count($table, $where = '', $arrWhereVal = array()) 140 141 { 141 142 return $this->get('COUNT(*)', $table, $where, $arrWhereVal); … … 145 146 * EXISTS文を実行する. 146 147 * 147 * @param string $tableテーブル名148 * @param string $wherewhere句149 * @param array$arrWhereVal プレースホルダ148 * @param string $table テーブル名 149 * @param string $where where句 150 * @param array $arrWhereVal プレースホルダ 150 151 * @return boolean 有無 151 152 */ 152 function exists($table, $where = '', $arrWhereVal = array())153 public function exists($table, $where = '', $arrWhereVal = array()) 153 154 { 154 155 $sql_inner = $this->getSql('*', $table, $where, $arrWhereVal); … … 156 157 $res = $this->getOne($sql, $arrWhereVal); 157 158 158 return (bool) $res;159 return (bool) $res; 159 160 } 160 161 … … 162 163 * SELECT文を実行する. 163 164 * 164 * @param string $colsカラム名. 複数カラムの場合はカンマ区切りで書く165 * @param string $fromテーブル名166 * @param string $whereWHERE句167 * @param array$arrWhereVal プレースホルダ168 * @param integer $fetchmode使用するフェッチモード。デフォルトは MDB2_FETCHMODE_ASSOC。165 * @param string $cols カラム名. 複数カラムの場合はカンマ区切りで書く 166 * @param string $from テーブル名 167 * @param string $where WHERE句 168 * @param array $arrWhereVal プレースホルダ 169 * @param integer $fetchmode 使用するフェッチモード。デフォルトは MDB2_FETCHMODE_ASSOC。 169 170 * @return array|null 170 171 */ 171 function select($cols, $from = '', $where = '', $arrWhereVal = array(), $fetchmode = MDB2_FETCHMODE_ASSOC)172 public function select($cols, $from = '', $where = '', $arrWhereVal = array(), $fetchmode = MDB2_FETCHMODE_ASSOC) 172 173 { 173 174 $sqlse = $this->getSql($cols, $from, $where, $arrWhereVal); … … 179 180 * 直前に実行されたSQL文を取得する. 180 181 * 181 * @param boolean $disp trueの場合、画面出力を行う.182 * @return string SQL文183 */ 184 function getLastQuery($disp = true)182 * @param boolean $disp trueの場合、画面出力を行う. 183 * @return string SQL文 184 */ 185 public function getLastQuery($disp = true) 185 186 { 186 187 $sql = $this->conn->last_query; … … 198 199 * 失敗した場合は PEAR::Error オブジェクト 199 200 */ 200 function commit()201 public function commit() 201 202 { 202 203 return $this->conn->commit(); … … 209 210 * 失敗した場合は PEAR::Error オブジェクト 210 211 */ 211 function begin()212 public function begin() 212 213 { 213 214 return $this->conn->beginTransaction(); … … 220 221 * 失敗した場合は PEAR::Error オブジェクト 221 222 */ 222 function rollback()223 public function rollback() 223 224 { 224 225 return $this->conn->rollback(); … … 230 231 * @return boolean トランザクションが開始されている場合 true 231 232 */ 232 function inTransaction()233 public function inTransaction() 233 234 { 234 235 return $this->conn->inTransaction(); … … 242 243 * FIXME MDB2::exec() の実装であるべき 243 244 */ 244 function exec($str, $arrVal = array())245 public function exec($str, $arrVal = array()) 245 246 { 246 247 return $this->query($str, $arrVal); … … 250 251 * クエリを実行し、結果行毎にコールバック関数を適用する 251 252 * 252 * @param callback $functionコールバック先253 * @param string $sqlSQL クエリ254 * @param array $arrValプリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。255 * @param integer$fetchmode 使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。256 * @return boolean 結果257 */ 258 function doCallbackAll($cbFunc, $sql, $arrVal = array(), $fetchmode = MDB2_FETCHMODE_ASSOC)253 * @param callback $function コールバック先 254 * @param string $sql SQL クエリ 255 * @param array $arrVal プリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。 256 * @param integer $fetchmode 使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。 257 * @return boolean 結果 258 */ 259 public function doCallbackAll($cbFunc, $sql, $arrVal = array(), $fetchmode = MDB2_FETCHMODE_ASSOC) 259 260 { 260 261 $sql = $this->dbFactory->sfChangeMySQL($sql); … … 284 285 * クエリを実行し、全ての行を返す 285 286 * 286 * @param string $sqlSQL クエリ287 * @param array $arrValプリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。288 * @param integer $fetchmode 使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。289 * @return array データを含む2次元配列。失敗した場合に 0 または DB_Error オブジェクトを返します。290 */ 291 function getAll($sql, $arrVal = array(), $fetchmode = MDB2_FETCHMODE_ASSOC)287 * @param string $sql SQL クエリ 288 * @param array $arrVal プリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。 289 * @param integer $fetchmode 使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。 290 * @return array データを含む2次元配列。失敗した場合に 0 または DB_Error オブジェクトを返します。 291 */ 292 public function getAll($sql, $arrVal = array(), $fetchmode = MDB2_FETCHMODE_ASSOC) 292 293 { 293 294 $sql = $this->dbFactory->sfChangeMySQL($sql); … … 316 317 * 317 318 * クラス変数から WHERE 句を組み立てる場合、$arrWhereVal を経由してプレースホルダもクラス変数のもので上書きする。 318 * @param string $colsSELECT 文に含めるカラム名319 * @param string $fromSELECT 文に含めるテーブル名320 * @param string $whereSELECT 文に含める WHERE 句321 * @param mixed$arrWhereVal プレースホルダ(参照)319 * @param string $cols SELECT 文に含めるカラム名 320 * @param string $from SELECT 文に含めるテーブル名 321 * @param string $where SELECT 文に含める WHERE 句 322 * @param mixed $arrWhereVal プレースホルダ(参照) 322 323 * @return string 構築済みの SELECT 文 323 324 */ 324 function getSql($cols, $from = '', $where = '', &$arrWhereVal = null)325 public function getSql($cols, $from = '', $where = '', &$arrWhereVal = null) 325 326 { 326 327 $dbFactory = SC_DB_DBFactory_Ex::getInstance(); … … 340 341 $sqlse .= ' WHERE ' . $this->where; 341 342 // 実行時と同じくキャストしてから評価する (空文字を要素1の配列と評価させる意図) 342 $arrWhereValForEval = (array) $arrWhereVal;343 $arrWhereValForEval = (array) $arrWhereVal; 343 344 if (empty($arrWhereValForEval)) { 344 345 $arrWhereVal = $this->arrWhereVal; … … 356 357 * この関数で設定した値は SC_Query::getSql() で使用されます. 357 358 * 358 * @param string$str 付与する SQL 文359 * @param string $str 付与する SQL 文 359 360 * @return SC_Query 自分自身のインスタンス 360 361 */ 361 function setOption($str)362 public function setOption($str) 362 363 { 363 364 $this->option = $str; … … 371 372 * この関数で設定した値は SC_Query::getSql() で使用されます. 372 373 * 373 * @param integer $limitLIMIT 句に付与する値374 * @param integer$offset OFFSET 句に付与する値374 * @param integer $limit LIMIT 句に付与する値 375 * @param integer $offset OFFSET 句に付与する値 375 376 * @return SC_Query 自分自身のインスタンス 376 377 */ 377 function setLimitOffset($limit, $offset = 0)378 public function setLimitOffset($limit, $offset = 0) 378 379 { 379 380 if (is_numeric($limit) && is_numeric($offset)) { … … 389 390 * この関数で設定した値は SC_Query::getSql() で使用されます. 390 391 * 391 * @param string$str GROUP BY 句に付与する文字列392 * @param string $str GROUP BY 句に付与する文字列 392 393 * @return SC_Query 自分自身のインスタンス 393 394 */ 394 function setGroupBy($str)395 public function setGroupBy($str) 395 396 { 396 397 if (strlen($str) == 0) { … … 408 409 * この関数で設定した値は SC_Query::getSql() で使用されます. 409 410 * 410 * @param string$str WHERE 句に付与する AND 条件の文字列411 * @param string $str WHERE 句に付与する AND 条件の文字列 411 412 * @return SC_Query 自分自身のインスタンス 412 413 */ 413 function andWhere($str)414 public function andWhere($str) 414 415 { 415 416 if ($this->where != '') { … … 427 428 * この関数で設定した値は SC_Query::getSql() で使用されます. 428 429 * 429 * @param string$str WHERE 句に付与する OR 条件の文字列430 * @param string $str WHERE 句に付与する OR 条件の文字列 430 431 * @return SC_Query 自分自身のインスタンス 431 432 */ 432 function orWhere($str)433 public function orWhere($str) 433 434 { 434 435 if ($this->where != '') { … … 446 447 * この関数で設定した値は SC_Query::getSql() で使用されます. 447 448 * 448 * @param string $whereWHERE 句に付与する文字列449 * @param mixed$arrWhereVal プレースホルダ449 * @param string $where WHERE 句に付与する文字列 450 * @param mixed $arrWhereVal プレースホルダ 450 451 * @return SC_Query 自分自身のインスタンス 451 452 */ 452 function setWhere($where = '', $arrWhereVal = array())453 public function setWhere($where = '', $arrWhereVal = array()) 453 454 { 454 455 $this->where = $where; … … 463 464 * この関数で設定した値は SC_Query::getSql() で使用されます. 464 465 * 465 * @param string$str ORDER BY 句に付与する文字列466 * @param string $str ORDER BY 句に付与する文字列 466 467 * @return SC_Query 自分自身のインスタンス 467 468 */ 468 function setOrder($str)469 public function setOrder($str) 469 470 { 470 471 if (strlen($str) == 0) { … … 482 483 * この関数で設定した値は SC_Query::getSql() で使用されます. 483 484 * 484 * @param integer$limit LIMIT 句に設定する値485 * @param integer $limit LIMIT 句に設定する値 485 486 * @return SC_Query 自分自身のインスタンス 486 487 */ 487 function setLimit($limit)488 public function setLimit($limit) 488 489 { 489 490 if (is_numeric($limit)) { … … 499 500 * この関数で設定した値は SC_Query::getSql() で使用されます. 500 501 * 501 * @param integer$offset OFFSET 句に設定する値502 * @param integer $offset OFFSET 句に設定する値 502 503 * @return SC_Query 自分自身のインスタンス 503 504 */ 504 function setOffset($offset)505 public function setOffset($offset) 505 506 { 506 507 if (is_numeric($offset)) { … … 514 515 * INSERT文を実行する. 515 516 * 516 * @param string $tableテーブル名517 * @param array $arrValarray('カラム名' => '値', ...)の連想配列518 * @param array $arrSqlarray('カラム名' => 'SQL文', ...)の連想配列519 * @param array $arrSqlValSQL文の中で使用するプレースホルダ配列520 * @param string $fromFROM 句・WHERE 句521 * @param string$arrFromVal FROM 句・WHERE 句で使用するプレースホルダ配列517 * @param string $table テーブル名 518 * @param array $arrVal array('カラム名' => '値', ...)の連想配列 519 * @param array $arrSql array('カラム名' => 'SQL文', ...)の連想配列 520 * @param array $arrSqlVal SQL文の中で使用するプレースホルダ配列 521 * @param string $from FROM 句・WHERE 句 522 * @param string $arrFromVal FROM 句・WHERE 句で使用するプレースホルダ配列 522 523 * @return integer|DB_Error|boolean 挿入件数またはエラー(DB_Error, false) 523 524 */ 524 function insert($table, $arrVal, $arrSql = array(), $arrSqlVal = array(), $from = '', $arrFromVal = array())525 public function insert($table, $arrVal, $arrSql = array(), $arrSqlVal = array(), $from = '', $arrFromVal = array()) 525 526 { 526 527 $strcol = ''; … … 533 534 if (strcasecmp('Now()', $val) === 0) { 534 535 $strval .= 'Now(),'; 535 } else 536 } elseif (strcasecmp('CURRENT_TIMESTAMP', $val) === 0) { 536 537 $strval .= 'CURRENT_TIMESTAMP,'; 537 538 } else { … … 572 573 * UPDATE文を実行する. 573 574 * 574 * @param string $table テーブル名575 * @param array $arrValarray('カラム名' => '値', ...)の連想配列576 * @param string $where WHERE句577 * @param array $arrWhereValWHERE句用のプレースホルダ配列 (従来は追加カラム用も兼ねていた)578 * @param array $arrRawSql追加カラム579 * @param array $arrRawSqlVal 追加カラム用のプレースホルダ配列575 * @param string $table テーブル名 576 * @param array $arrVal array('カラム名' => '値', ...)の連想配列 577 * @param string $where WHERE句 578 * @param array $arrWhereVal WHERE句用のプレースホルダ配列 (従来は追加カラム用も兼ねていた) 579 * @param array $arrRawSql 追加カラム 580 * @param array $arrRawSqlVal 追加カラム用のプレースホルダ配列 580 581 * @return 581 582 */ 582 function update($table, $arrVal, $where = '', $arrWhereVal = array(), $arrRawSql = array(), $arrRawSqlVal = array())583 public function update($table, $arrVal, $where = '', $arrWhereVal = array(), $arrRawSql = array(), $arrRawSqlVal = array()) 583 584 { 584 585 $arrCol = array(); … … 589 590 if (strcasecmp('Now()', $val) === 0) { 590 591 $arrCol[] = $key . '= Now()'; 591 } else 592 } elseif (strcasecmp('CURRENT_TIMESTAMP', $val) === 0) { 592 593 $arrCol[] = $key . '= CURRENT_TIMESTAMP'; 593 594 } else { … … 630 631 * MAX文を実行する. 631 632 * 632 * @param string $tableテーブル名633 * @param string $colカラム名634 * @param string $where付与する WHERE 句635 * @param array$arrWhereVal プレースホルダに挿入する値633 * @param string $table テーブル名 634 * @param string $col カラム名 635 * @param string $where 付与する WHERE 句 636 * @param array $arrWhereVal プレースホルダに挿入する値 636 637 * @return integer MAX文の実行結果 637 638 */ 638 function max($col, $table, $where = '', $arrWhereVal = array())639 public function max($col, $table, $where = '', $arrWhereVal = array()) 639 640 { 640 641 $ret = $this->get("MAX($col)", $table, $where, $arrWhereVal); … … 646 647 * MIN文を実行する. 647 648 * 648 * @param string $tableテーブル名649 * @param string $colカラム名650 * @param string $where付与する WHERE 句651 * @param array$arrWhereVal プレースホルダに挿入する値649 * @param string $table テーブル名 650 * @param string $col カラム名 651 * @param string $where 付与する WHERE 句 652 * @param array $arrWhereVal プレースホルダに挿入する値 652 653 * @return integer MIN文の実行結果 653 654 */ 654 function min($col, $table, $where = '', $arrWhereVal = array())655 public function min($col, $table, $where = '', $arrWhereVal = array()) 655 656 { 656 657 $ret = $this->get("MIN($col)", $table, $where, $arrWhereVal); … … 662 663 * SQL を構築して, 特定のカラムの値を取得する. 663 664 * 664 * @param string $tableテーブル名665 * @param string $colカラム名666 * @param string $where付与する WHERE 句667 * @param array$arrWhereVal プレースホルダに挿入する値668 * @return mixed SQL の実行結果669 */ 670 function get($col, $table = '', $where = '', $arrWhereVal = array())665 * @param string $table テーブル名 666 * @param string $col カラム名 667 * @param string $where 付与する WHERE 句 668 * @param array $arrWhereVal プレースホルダに挿入する値 669 * @return mixed SQL の実行結果 670 */ 671 public function get($col, $table = '', $where = '', $arrWhereVal = array()) 671 672 { 672 673 $sqlse = $this->getSql($col, $table, $where, $arrWhereVal); … … 680 681 * SQL を指定して, 特定のカラムの値を取得する. 681 682 * 682 * @param string $sql実行する SQL683 * @param array$arrVal プレースホルダに挿入する値684 * @return mixed SQL の実行結果685 */ 686 function getOne($sql, $arrVal = array())683 * @param string $sql 実行する SQL 684 * @param array $arrVal プレースホルダに挿入する値 685 * @return mixed SQL の実行結果 686 */ 687 public function getOne($sql, $arrVal = array()) 687 688 { 688 689 $sql = $this->dbFactory->sfChangeMySQL($sql); … … 710 711 * 一行をカラム名をキーとした連想配列として取得 711 712 * 712 * @param string $tableテーブル名713 * @param string $colカラム名714 * @param string $whereWHERE句715 * @param array$arrWhereVal プレースホルダ配列716 * @param integer $fetchmode使用するフェッチモード。デフォルトは MDB2_FETCHMODE_ASSOC。717 * @return array array('カラム名' => '値', ...)の連想配列718 */ 719 function getRow($col, $table = '', $where = '', $arrWhereVal = array(), $fetchmode = MDB2_FETCHMODE_ASSOC)713 * @param string $table テーブル名 714 * @param string $col カラム名 715 * @param string $where WHERE句 716 * @param array $arrWhereVal プレースホルダ配列 717 * @param integer $fetchmode 使用するフェッチモード。デフォルトは MDB2_FETCHMODE_ASSOC。 718 * @return array array('カラム名' => '値', ...)の連想配列 719 */ 720 public function getRow($col, $table = '', $where = '', $arrWhereVal = array(), $fetchmode = MDB2_FETCHMODE_ASSOC) 720 721 { 721 722 $sql = $this->getSql($col, $table, $where, $arrWhereVal); … … 744 745 * SELECT 文の実行結果を 1列のみ取得する. 745 746 * 746 * @param string $tableテーブル名747 * @param string $colカラム名748 * @param string $where付与する WHERE 句749 * @param array$arrWhereVal プレースホルダに挿入する値750 * @return array SQL の実行結果の配列751 */ 752 function getCol($col, $table = '', $where = '', $arrWhereVal = array())747 * @param string $table テーブル名 748 * @param string $col カラム名 749 * @param string $where 付与する WHERE 句 750 * @param array $arrWhereVal プレースホルダに挿入する値 751 * @return array SQL の実行結果の配列 752 */ 753 public function getCol($col, $table = '', $where = '', $arrWhereVal = array()) 753 754 { 754 755 $sql = $this->getSql($col, $table, $where, $arrWhereVal); … … 777 778 * レコードの削除 778 779 * 779 * @param string $table テーブル名780 * @param string $where WHERE句781 * @param array $arrWhereVal プレースホルダ780 * @param string $table テーブル名 781 * @param string $where WHERE句 782 * @param array $arrWhereVal プレースホルダ 782 783 * @return 783 784 */ 784 function delete($table, $where = '', $arrWhereVal = array())785 public function delete($table, $where = '', $arrWhereVal = array()) 785 786 { 786 787 if (strlen($where) <= 0) { … … 800 801 * @param integer 次のシーケンス値 801 802 */ 802 function nextVal($seq_name)803 public function nextVal($seq_name) 803 804 { 804 805 return $this->conn->nextID($seq_name); … … 808 809 * 現在のシーケンス値を取得する. 809 810 * 810 * @param string$seq_name 取得するシーケンス名811 * @param string $seq_name 取得するシーケンス名 811 812 * @return integer 現在のシーケンス値 812 813 */ 813 function currVal($seq_name)814 public function currVal($seq_name) 814 815 { 815 816 return $this->conn->currID($seq_name); … … 819 820 * シーケンス値を設定する. 820 821 * 821 * @param string$seq_name シーケンス名822 * @param integer $start設定するシーケンス値822 * @param string $seq_name シーケンス名 823 * @param integer $start 設定するシーケンス値 823 824 * @return MDB2_OK 824 825 */ 825 function setVal($seq_name, $start)826 public function setVal($seq_name, $start) 826 827 { 827 828 $objManager =& $this->conn->loadModule('Manager'); … … 846 847 * FIXME $ignore_errが無視されるようになっているが互換性として問題が無いか確認が必要 847 848 * 848 * @param string $n実行する SQL 文849 * @param array $arrプレースホルダに挿入する値850 * @param boolean $ignore_errMDB2切替で無効化されている (エラーが発生しても処理を続行する場合 true)851 * @param mixed $typesプレースホルダの型指定 デフォルトnull = string852 * @param mixed$result_types 返値の型指定またはDML実行(MDB2_PREPARE_MANIP)853 * @return array SQL の実行結果の配列854 */ 855 function query($n ,$arr = array(), $ignore_err = false, $types = null, $result_types = MDB2_PREPARE_RESULT)849 * @param string $n 実行する SQL 文 850 * @param array $arr プレースホルダに挿入する値 851 * @param boolean $ignore_err MDB2切替で無効化されている (エラーが発生しても処理を続行する場合 true) 852 * @param mixed $types プレースホルダの型指定 デフォルトnull = string 853 * @param mixed $result_types 返値の型指定またはDML実行(MDB2_PREPARE_MANIP) 854 * @return array SQL の実行結果の配列 855 */ 856 public function query($n ,$arr = array(), $ignore_err = false, $types = null, $result_types = MDB2_PREPARE_RESULT) 856 857 { 857 858 $n = $this->dbFactory->sfChangeMySQL($n); … … 878 879 * @return array シーケンス名の配列 879 880 */ 880 function listSequences()881 public function listSequences() 881 882 { 882 883 $objManager =& $this->conn->loadModule('Manager'); … … 890 891 * @return array テーブル名の配列 891 892 */ 892 function listTables()893 public function listTables() 893 894 { 894 895 return $this->dbFactory->listTables($this); … … 898 899 * テーブルのカラム一覧を取得する. 899 900 * 900 * @param string $table テーブル名901 * @return array 指定のテーブルのカラム名の配列902 */ 903 function listTableFields($table)901 * @param string $table テーブル名 902 * @return array 指定のテーブルのカラム名の配列 903 */ 904 public function listTableFields($table) 904 905 { 905 906 $objManager =& $this->conn->loadModule('Manager'); … … 911 912 * テーブルのインデックス一覧を取得する. 912 913 * 913 * @param string $table テーブル名914 * @return array 指定のテーブルのインデックス一覧915 */ 916 function listTableIndexes($table)914 * @param string $table テーブル名 915 * @return array 指定のテーブルのインデックス一覧 916 */ 917 public function listTableIndexes($table) 917 918 { 918 919 $objManager =& $this->conn->loadModule('Manager'); … … 924 925 * テーブルにインデックスを付与する 925 926 * 926 * @param string $table テーブル名927 * @param string $name インデックス名928 * @param array $definition フィールド名など 通常のフィールド指定時は、$definition=array('fields' => array('フィールド名' => array()));927 * @param string $table テーブル名 928 * @param string $name インデックス名 929 * @param array $definition フィールド名など 通常のフィールド指定時は、$definition=array('fields' => array('フィールド名' => array())); 929 930 * MySQLのtext型フィールドを指定する場合は $definition['length'] = 'text_field(NNN)' が必要 930 931 */ 931 function createIndex($table, $name, $definition)932 public function createIndex($table, $name, $definition) 932 933 { 933 934 $definition = $this->dbFactory->sfGetCreateIndexDefinition($table, $name, $definition); … … 941 942 * 942 943 * @param string $table テーブル名 943 * @param string $name インデックス名944 */ 945 function dropIndex($table, $name)944 * @param string $name インデックス名 945 */ 946 public function dropIndex($table, $name) 946 947 { 947 948 $objManager =& $this->conn->loadModule('Manager'); … … 953 954 * テーブルの詳細情報を取得する。 954 955 * 955 * @param string $table テーブル名956 * @return array テーブル情報の配列957 */ 958 function getTableInfo($table)956 * @param string $table テーブル名 957 * @return array テーブル情報の配列 958 */ 959 public function getTableInfo($table) 959 960 { 960 961 $objManager =& $this->conn->loadModule('Reverse'); … … 971 972 * 972 973 * @see MDB2::quote() 973 * @param string $val クォートを行う文字列974 * @param string $val クォートを行う文字列 974 975 * @return string クォートされた文字列 975 976 */ 976 function quote($val)977 public function quote($val) 977 978 { 978 979 return $this->conn->quote($val); … … 986 987 * @return array テーブルに存在する列のみ抽出した連想配列 987 988 */ 988 function extractOnlyColsOf($table, $arrParams)989 public function extractOnlyColsOf($table, $arrParams) 989 990 { 990 991 $arrCols = $this->listTableFields($table); … … 1003 1004 * 1004 1005 * @access private 1005 * @param string $sqlプリペアドステートメントを構築する SQL1006 * @param mixed $typesプレースホルダの型指定 デフォルト null1007 * @param mixed$result_types 返値の型指定またはDML実行(MDB2_PREPARE_MANIP)、nullは指定無し1006 * @param string $sql プリペアドステートメントを構築する SQL 1007 * @param mixed $types プレースホルダの型指定 デフォルト null 1008 * @param mixed $result_types 返値の型指定またはDML実行(MDB2_PREPARE_MANIP)、nullは指定無し 1008 1009 * @return MDB2_Statement_Common プリペアドステートメントインスタンス 1009 1010 */ 1010 function prepare($sql, $types = null, $result_types = MDB2_PREPARE_RESULT)1011 public function prepare($sql, $types = null, $result_types = MDB2_PREPARE_RESULT) 1011 1012 { 1012 1013 $sth =& $this->conn->prepare($sql, $types, $result_types); … … 1024 1025 * @access private 1025 1026 * @param MDB2_Statement_Common プリペアドステートメントインスタンス 1026 * @param array$arrVal プレースホルダに挿入する配列1027 * @param array $arrVal プレースホルダに挿入する配列 1027 1028 * @return MDB2_Result 結果セットのインスタンス 1028 1029 */ 1029 function execute(&$sth, $arrVal = array())1030 public function execute(&$sth, $arrVal = array()) 1030 1031 { 1031 1032 // #1658 (SC_Query の各種メソッドでプレースホルダの数に誤りがあるとメモリリークが発生する) 対応 … … 1037 1038 1038 1039 $arrStartInfo =& $this->lfStartDbTraceLog($sth, $arrVal); 1039 $affected =& $sth->execute((array) $arrVal);1040 $affected =& $sth->execute((array) $arrVal); 1040 1041 $this->lfEndDbTraceLog($arrStartInfo, $sth, $arrVal); 1041 1042 … … 1058 1059 * XXX 重要な情報を先頭に置き、冗長になりすぎないように留意する。 1059 1060 * @access private 1060 * @param PEAR::Error $errorPEAR::Error インスタンス1061 * @param string $sqlエラーの発生した SQL 文1062 * @param array$arrVal プレースホルダ1063 * @return string トレースしたエラー文字列1064 */ 1065 function traceError($error, $sql = '', $arrVal = false)1061 * @param PEAR::Error $error PEAR::Error インスタンス 1062 * @param string $sql エラーの発生した SQL 文 1063 * @param array $arrVal プレースホルダ 1064 * @return string トレースしたエラー文字列 1065 */ 1066 public function traceError($error, $sql = '', $arrVal = false) 1066 1067 { 1067 1068 $err = "SQL: [$sql]\n"; … … 1074 1075 // PEAR::MDB2 内部のスタックトレースを出力する場合、下記のコメントを外す。 1075 1076 // $err .= GC_Utils_Ex::toStringBacktrace($error->getBackTrace()); 1076 1077 1077 return $err; 1078 1078 } … … 1081 1081 * エラー処理 1082 1082 */ 1083 function error($msg)1083 public function error($msg) 1084 1084 { 1085 1085 $msg = "DB処理でエラーが発生しました。\n" . $msg; … … 1094 1094 * SQLクエリの結果セットのカラム名だけを取得する 1095 1095 * 1096 * @param string $n 実行する SQL 文1097 * @param array $arr プレースホルダに挿入する値1096 * @param string $n 実行する SQL 文 1097 * @param array $arr プレースホルダに挿入する値 1098 1098 * @param boolean エラーが発生しても処理を続行する場合 true 1099 * @param mixed $typesプレースホルダの型指定 デフォルトnull = string1100 * @param mixed $result_types 返値の型指定またはDML実行(MDB2_PREPARE_MANIP)1099 * @param mixed $types プレースホルダの型指定 デフォルトnull = string 1100 * @param mixed $result_types 返値の型指定またはDML実行(MDB2_PREPARE_MANIP) 1101 1101 * @return array 実行結果の配列 1102 1102 */ 1103 function getQueryDefsFields($n ,$arr = array(), $ignore_err = false, $types = null, $result_types = MDB2_PREPARE_RESULT)1103 public function getQueryDefsFields($n ,$arr = array(), $ignore_err = false, $types = null, $result_types = MDB2_PREPARE_RESULT) 1104 1104 { 1105 1105 $n = $this->dbFactory->sfChangeMySQL($n); … … 1125 1125 * 1126 1126 * @param string 実行するSQL文 1127 * @param array $arrVal プレースホルダに挿入する配列1127 * @param array $arrVal プレースホルダに挿入する配列 1128 1128 * @return void 1129 1129 */ … … 1161 1161 * 1162 1162 * @param string 実行するSQL文 1163 * @param array $arrVal プレースホルダに挿入する配列1163 * @param array $arrVal プレースホルダに挿入する配列 1164 1164 * @return void 1165 1165 */ … … 1177 1177 if (SQL_QUERY_LOG_MODE === 1) { 1178 1178 // 規定時間より速い場合、ログに出力しない 1179 if (!defined('SQL_QUERY_LOG_MIN_EXEC_TIME') || $timeExecTime < (float) SQL_QUERY_LOG_MIN_EXEC_TIME) {1179 if (!defined('SQL_QUERY_LOG_MIN_EXEC_TIME') || $timeExecTime < (float) SQL_QUERY_LOG_MIN_EXEC_TIME) { 1180 1180 return; 1181 1181 } … … 1192 1192 * インスタンスをプールする 1193 1193 * 1194 * @param SC_Query $objThis プールするインスタンス1195 * @param string $dsnデータソース名1194 * @param SC_Query $objThis プールするインスタンス 1195 * @param string $dsn データソース名 1196 1196 * @return SC_Query プールしたインスタンス 1197 1197 */ 1198 static function setPoolInstance(&$objThis, $dsn = '')1198 public static function setPoolInstance(&$objThis, $dsn = '') 1199 1199 { 1200 1200 $key_str = serialize($dsn); … … 1206 1206 * プールしているインスタンスを取得する 1207 1207 * 1208 * @param string$dsn データソース名1208 * @param string $dsn データソース名 1209 1209 * @return SC_Query|null 1210 1210 */ 1211 static function getPoolInstance($dsn = '')1211 public static function getPoolInstance($dsn = '') 1212 1212 { 1213 1213 $key_str = serialize($dsn);
Note: See TracChangeset
for help on using the changeset viewer.