Changeset 18784
- Timestamp:
- 2010/08/12 19:33:49 (14 years ago)
- bzr:base-revision:
- svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18783
- bzr:committer:
- Kentaro Ohkouchi <ohkouchi@loop-az.jp>
- bzr:file-ids:
data/class/SC_Query.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_Query.php
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php 15123@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fdb%2Fdbfactory%2FSC_DB_DBFactory_MYSQL.php
data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php 15123@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fdb%2Fdbfactory%2FSC_DB_DBFactory_PGSQL.php
data/class/helper/SC_Helper_DB.php 15176@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fhelper%2FSC_Helper_DB.php- bzr:mapping-version:
- v4
- bzr:repository-uuid:
- 1e3b908f-19a9-db11-a64c-001125224ba8
- bzr:revision-id:
- ohkouchi@loop-az.jp-20100812103342-5fc7rp06997dbg6e
- bzr:revno:
- 2267
- bzr:revprop:branch-nick:
- branches/version-2_5-dev
- bzr:root:
- branches/version-2_5-dev
- bzr:text-parents:
data/class/SC_Query.php ohkouchi@loop-az.jp-20100804045224-nsulc26bh1ttqfrb
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18777
data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php ohkouchi@loop-az.jp-20100804045224-nsulc26bh1ttqfrb
data/class/helper/SC_Helper_DB.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18777- bzr:timestamp:
- 2010-08-12 19:33:42.628999949 +0900
- bzr:user-agent:
- bzr2.1.2+bzr-svn1.0.2
- svn:original-date:
- 2010-08-12T10:33:42.629000Z
- Location:
- branches/version-2_5-dev/data/class
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/SC_Query.php
r18775 r18784 33 33 */ 34 34 class SC_Query { 35 36 var $instance; 35 37 var $option; 36 38 var $where; … … 38 40 var $groupby; 39 41 var $order; 42 var $force_run; 40 43 41 44 /** 42 45 * コンストラクタ. 43 46 * 44 * @param $dsn45 * @param boolean $ err_disp エラー表示を行うかどうか47 * @param string $dsn データソース名 48 * @param boolean $force_run エラーが発生しても処理を続行する場合 true 46 49 * @param boolean $new 新規に接続を行うかどうか 47 * @return SC_Query 48 */ 49 function SC_Query($dsn = "", $err_disp = true, $new = false) { 50 */ 51 function SC_Query($dsn = "", $force_run = true, $new = false) { 50 52 51 53 if ($dsn == "") { … … 64 66 } 65 67 66 if (! $this->isError()) {68 if (!PEAR::isError($this->conn)) { 67 69 $this->conn->setCharset(CHAR_CODE); 68 70 $this->conn->setFetchMode(MDB2_FETCHMODE_ASSOC); 69 71 } 72 70 73 $this->dbFactory = SC_DB_DBFactory_Ex::getInstance(); 74 $this->force_run = $force_run; 71 75 $this->where = ""; 72 76 } 73 77 74 78 /** 79 * シングルトンの SC_Query インスタンスを取得する. 80 * 81 * @param string $dsn データソース名 82 * @param boolean $force_run エラーが発生しても処理を続行する場合 true 83 * @param boolean $new 新規に接続を行うかどうか 84 * @return SC_Query シングルトンの SC_Query インスタンス 85 */ 86 function getSingletonInstance($dsn = "", $force_run = true, $new = false) { 87 if (is_null($this->instance)) { 88 $this->instance =& new SC_Query($dsn = "", $force_run = true, 89 $new = false); 90 } 91 return $this->instance; 92 } 93 94 /** 75 95 * エラー判定を行う. 76 96 * 97 * @deprecated PEAR::isError() を使用して下さい 77 98 * @return boolean 78 99 */ … … 109 130 * @param string $where WHERE句 110 131 * @param array $arrval プレースホルダ 111 * @param integer $fetchmode 使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。132 * @param integer $fetchmode 使用するフェッチモード。デフォルトは MDB2_FETCHMODE_ASSOC。 112 133 * @return array|null 113 134 */ … … 131 152 } 132 153 154 /** 155 * トランザクションをコミットする. 156 * 157 * @return MDB2_OK 成功した場合は MDB2_OK; 158 * 失敗した場合は PEAR::Error オブジェクト 159 */ 133 160 function commit() { 134 $this->conn->commit(); 135 } 136 161 return $this->conn->commit(); 162 } 163 164 /** 165 * トランザクションを開始する. 166 * 167 * @return MDB2_OK 成功した場合は MDB2_OK; 168 * 失敗した場合は PEAR::Error オブジェクト 169 */ 137 170 function begin() { 138 $this->conn->beginTransaction(); 139 } 140 171 return $this->conn->beginTransaction(); 172 } 173 174 /** 175 * トランザクションをロールバックする. 176 * 177 * @return MDB2_OK 成功した場合は MDB2_OK; 178 * 失敗した場合は PEAR::Error オブジェクト 179 */ 141 180 function rollback() { 142 $this->conn->rollback(); 143 } 144 181 return $this->conn->rollback(); 182 } 183 184 /** 185 * トランザクションが開始されているかチェックする. 186 * 187 * @return boolean トランザクションが開始されている場合 true 188 */ 189 function inTransaction() { 190 return $this->conn->inTransaction(); 191 } 192 193 /** 194 * 更新系の SQL を実行する. 195 * 196 * この関数は SC_Query::query() のエイリアスです. 197 * 198 * FIXME MDB2::exec() の実装であるべき 199 */ 145 200 function exec($str, $arrval = array()) { 146 // FIXME MDB2::exec() の実装であるべき 147 $this->query($str, $arrval); 201 return $this->query($str, $arrval); 148 202 } 149 203 … … 160 214 $sql = $this->dbFactory->sfChangeMySQL($sql); 161 215 162 $sth = $this->conn->prepare($sql); 163 if (PEAR::isError($sth)) { 164 /* 165 * XXX インストーラのテーブルチェックに失敗してしまう. 166 * エラーハンドリングの方法を要検討 167 */ 168 return; 169 } 170 $affected = $sth->execute($arrval); 171 172 if (PEAR::isError($affected)) { 173 trigger_error($affected->getMessage(), E_USER_ERROR); 216 $sth =& $this->prepare($sql); 217 if (PEAR::isError($sth) && $this->force_run) { 218 return; 219 } 220 221 $affected =& $this->execute($sth, $arrval); 222 if (PEAR::isError($affected) && $this->force_run) { 223 return; 174 224 } 175 225 … … 177 227 } 178 228 229 /** 230 * 構築した SELECT 文を取得する. 231 * 232 * @param string $col SELECT 文に含めるカラム名 233 * @param string $table SELECT 文に含めるテーブル名 234 * @param string $where SELECT 文に含める WHERE 句 235 * @return string 構築済みの SELECT 文 236 */ 179 237 function getSql($col, $table, $where = '') { 180 238 $sqlse = "SELECT $col FROM $table"; … … 192 250 } 193 251 252 /** 253 * SELECT 文の末尾に付与する SQL を設定する. 254 * 255 * この関数で設定した値は SC_Query::getSql() で使用されます. 256 * 257 * @param string $str 付与する SQL 文 258 * @return SC_Query 自分自身のインスタンス 259 */ 194 260 function setOption($str) { 195 261 $this->option = $str; 196 } 197 198 // TODO MDB2::setLimit() を使用する 199 function setLimitOffset($limit, $offset = 0, $return = false) { 262 return $this; 263 } 264 265 /** 266 * SELECT 文に付与する LIMIT, OFFSET 句を設定する. 267 * 268 * この関数で設定した値は SC_Query::getSql() で使用されます. 269 * TODO MDB2::setLimit() を使用する 270 * 271 * @param integer $limit LIMIT 句に付与する値 272 * @param integer $offset OFFSET 句に付与する値 273 * @return SC_Query 自分自身のインスタンス 274 */ 275 function setLimitOffset($limit, $offset = 0) { 200 276 if (is_numeric($limit) && is_numeric($offset)){ 201 277 202 278 $option = " LIMIT " . $limit; 203 279 $option.= " OFFSET " . $offset; 204 205 if($return){ 206 return $option; 207 }else{ 208 $this->option.= $option; 209 } 210 } 211 } 212 280 $this->option .= $option; 281 } 282 return $this; 283 } 284 285 /** 286 * SELECT 文に付与する GROUP BY 句を設定する. 287 * 288 * この関数で設定した値は SC_Query::getSql() で使用されます. 289 * 290 * @param string $str GROUP BY 句に付与する文字列 291 * @return SC_Query 自分自身のインスタンス 292 */ 213 293 function setGroupBy($str) { 214 294 if (strlen($str) == 0) { … … 217 297 $this->groupby = "GROUP BY " . $str; 218 298 } 219 } 220 221 function andwhere($str) { 299 return $this; 300 } 301 302 /** 303 * SELECT 文の WHERE 句に付与する AND 条件を設定する. 304 * 305 * この関数で設定した値は SC_Query::getSql() で使用されます. 306 * 307 * @param string $str WHERE 句に付与する AND 条件の文字列 308 * @return SC_Query 自分自身のインスタンス 309 */ 310 function andWhere($str) { 222 311 if($this->where != "") { 223 312 $this->where .= " AND " . $str; … … 225 314 $this->where = $str; 226 315 } 227 } 228 316 return $this; 317 } 318 319 /** 320 * SELECT 文の WHERE 句に付与する OR 条件を設定する. 321 * 322 * この関数で設定した値は SC_Query::getSql() で使用されます. 323 * 324 * @param string $str WHERE 句に付与する OR 条件の文字列 325 * @return SC_Query 自分自身のインスタンス 326 */ 229 327 function orWhere($str) { 230 328 if($this->where != "") { … … 233 331 $this->where = $str; 234 332 } 235 } 236 333 return $this; 334 } 335 336 /** 337 * SELECT 文に付与する WHERE 句を設定する. 338 * 339 * この関数で設定した値は SC_Query::getSql() で使用されます. 340 * 341 * @param string $str WHERE 句に付与する文字列 342 * @return SC_Query 自分自身のインスタンス 343 */ 237 344 function setWhere($str) { 238 345 $this->where = $str; 239 } 240 346 return $this; 347 } 348 349 /** 350 * SELECT 文に付与する ORDER BY 句を設定する. 351 * 352 * この関数で設定した値は SC_Query::getSql() で使用されます. 353 * 354 * @param string $str ORDER BY 句に付与する文字列 355 * @return SC_Query 自分自身のインスタンス 356 */ 241 357 function setOrder($str) { 242 358 if (strlen($str) == 0) { … … 245 361 $this->order = "ORDER BY " . $str; 246 362 } 247 } 248 249 363 return $this; 364 } 365 366 /** 367 * SELECT 文に付与する LIMIT 句を設定する. 368 * 369 * この関数で設定した値は SC_Query::getSql() で使用されます. 370 * 371 * @param integer $limit LIMIT 句に設定する値 372 * @return SC_Query 自分自身のインスタンス 373 */ 250 374 function setLimit($limit){ 251 375 if ( is_numeric($limit)){ 252 376 $this->option = " LIMIT " .$limit; 253 377 } 254 } 255 378 return $this; 379 } 380 381 /** 382 * SELECT 文に付与する OFFSET 句を設定する. 383 * 384 * この関数で設定した値は SC_Query::getSql() で使用されます. 385 * 386 * @param integer $offset LIMIT 句に設定する値 387 * @return SC_Query 自分自身のインスタンス 388 */ 256 389 function setOffset($offset) { 257 390 if ( is_numeric($offset)){ 258 391 $this->offset = " OFFSET " .$offset; 259 392 } 393 return $this; 260 394 } 261 395 … … 352 486 } 353 487 354 // MAX文の実行 488 /** 489 * MAX文を実行する. 490 * 491 * @param string $table テーブル名 492 * @param string $col カラム名 493 * @param string $where 付与する WHERE 句 494 * @param array $arrval ブレースホルダに挿入する値 495 * @return integer MAX文の実行結果 496 */ 355 497 function max($table, $col, $where = "", $arrval = array()) { 356 498 $ret = $this->get($table, "MAX($col)", $where, $arrval); … … 358 500 } 359 501 360 // MIN文の実行 502 /** 503 * MIN文を実行する. 504 * 505 * @param string $table テーブル名 506 * @param string $col カラム名 507 * @param string $where 付与する WHERE 句 508 * @param array $arrval ブレースホルダに挿入する値 509 * @return integer MIN文の実行結果 510 */ 361 511 function min($table, $col, $where = "", $arrval = array()) { 362 512 $ret = $this->get($table, "MIN($col)", $where, $arrval); … … 364 514 } 365 515 366 // 特定のカラムの値を取得 516 /** 517 * SQL を構築して, 特定のカラムの値を取得する. 518 * 519 * @param string $table テーブル名 520 * @param string $col カラム名 521 * @param string $where 付与する WHERE 句 522 * @param array $arrval ブレースホルダに挿入する値 523 * @return mixed SQL の実行結果 524 */ 367 525 function get($table, $col, $where = "", $arrval = array()) { 368 526 $sqlse = $this->getSql($col, $table, $where); … … 372 530 } 373 531 532 /** 533 * SQL を指定して, 特定のカラムの値を取得する. 534 * 535 * @param string $sql 実行する SQL 536 * @param array $arrval ブレースホルダに挿入する値 537 * @return mixed SQL の実行結果 538 */ 374 539 function getOne($sql, $arrval = array()) { 375 540 376 541 $sql = $this->dbFactory->sfChangeMySQL($sql); 377 542 378 $sth = $this->conn->prepare($sql); 379 $affected = $sth->execute($arrval); 380 381 if (PEAR::isError($affected)) { 382 trigger_error($affected->getMessage(), E_USER_ERROR); 543 $sth =& $this->prepare($sql); 544 if (PEAR::isError($sth) && $this->force_run) { 545 return; 546 } 547 548 $affected =& $this->execute($sth, $arrval); 549 if (PEAR::isError($affected) && $this->force_run) { 550 return; 383 551 } 384 552 … … 393 561 * @param string $where WHERE句 394 562 * @param array $arrVal プレースホルダ配列 395 * @param integer $fetchmode 使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。563 * @param integer $fetchmode 使用するフェッチモード。デフォルトは MDB2_FETCHMODE_ASSOC。 396 564 * @return array array('カラム名' => '値', ...)の連想配列 397 565 */ … … 401 569 $sql = $this->dbFactory->sfChangeMySQL($sql); 402 570 403 $sth = $this->conn->prepare($sql); 404 $affected = $sth->execute($arrVal); 405 406 if (PEAR::isError($affected)) { 407 trigger_error($affected->getMessage(), E_USER_ERROR); 571 $sth =& $this->prepare($sql); 572 if (PEAR::isError($sth) && $this->force_run) { 573 return; 574 } 575 576 $affected =& $this->execute($sth, $arrVal); 577 if (PEAR::isError($affected) && $this->force_run) { 578 return; 408 579 } 409 580 … … 411 582 } 412 583 413 // 1列取得 584 /** 585 * SELECT 文の実行結果を 1行のみ取得する. 586 * 587 * @param string $table テーブル名 588 * @param string $col カラム名 589 * @param string $where 付与する WHERE 句 590 * @param array $arrval ブレースホルダに挿入する値 591 * @return array SQL の実行結果の配列 592 */ 414 593 function getCol($table, $col, $where = "", $arrval = array()) { 415 594 $sql = $this->getSql($col, $table, $where); 416 595 $sql = $this->dbFactory->sfChangeMySQL($sql); 417 596 418 $sth = $this->conn->prepare($sql); 419 $affected = $sth->execute($arrval); 420 421 if (PEAR::isError($affected)) { 422 trigger_error($affected->getMessage(), E_USER_ERROR); 597 $sth =& $this->prepare($sql); 598 if (PEAR::isError($sth) && $this->force_run) { 599 return; 600 } 601 602 $affected =& $this->execute($sth, $arrval); 603 if (PEAR::isError($affected) && $this->force_run) { 604 return; 423 605 } 424 606 … … 444 626 } 445 627 628 // TODO MDB2::nextID のエイリアスとする 446 629 function nextval($table, $colname) { 447 630 $sql = ""; … … 458 641 } 459 642 643 // TODO MDB2::currID のエイリアスとする 460 644 function currval($table, $colname) { 461 645 $sql = ""; … … 471 655 } 472 656 657 // TODO MDB2 に該当関数が無いため実装を要検討 473 658 function setval($table, $colname, $data) { 474 659 $sql = ""; … … 485 670 } 486 671 487 // XXX 更新系には exec() を使用するべき 672 /** 673 * SQL を実行する. 674 * 675 * XXX 更新系には exec() を使用するべき 676 * 677 * @param string $n 実行する SQL 文 678 * @param array $arrval ブレースホルダに挿入する値 679 * @return array SQL の実行結果の配列 680 */ 488 681 function query($n ,$arr = array(), $ignore_err = false){ 489 682 490 683 $n = $this->dbFactory->sfChangeMySQL($n); 491 684 492 $sth = $this->conn->prepare($n); 493 $result = $sth->execute($arr); 494 495 if (PEAR::isError($result)) { 496 /* 497 * XXX インストーラのテーブルチェックに失敗してしまう. 498 * エラーハンドリングの方法を要検討 499 */ 500 //trigger_error($result->getMessage(), E_USER_ERROR); 685 $sth =& $this->prepare($n); 686 if (PEAR::isError($sth) && $this->force_run) { 687 return; 688 } 689 690 $result = $this->execute($sth, $arr); 691 if (PEAR::isError($result) && $this->force_run) { 692 return; 501 693 } 502 694 … … 543 735 return $this->conn->quote($val); 544 736 } 737 738 /** 739 * プリペアドステートメントを構築する. 740 * 741 * @access private 742 * @param string $sql プリペアドステートメントを構築する SQL 743 * @return MDB2_Statement_Common プリペアドステートメントインスタンス 744 */ 745 function prepare($sql) { 746 $sth =& $this->conn->prepare($sql); 747 if (PEAR::isError($sth)) { 748 if (!$this->force_run) { 749 trigger_error($sth->getMessage(), E_USER_ERROR); 750 } 751 } 752 return $sth; 753 } 754 755 /** 756 * プリペアドクエリを実行する. 757 * 758 * @access private 759 * @param MDB2_Statement_Common プリペアドステートメントインスタンス 760 * @param array $arrVal ブレースホルダに挿入する配列 761 * @return MDB2_Result 結果セットのインスタンス 762 */ 763 function execute(&$sth, $arrVal = array()) { 764 $affected =& $sth->execute($arrVal); 765 if (PEAR::isError($affected)) { 766 if (!$this->force_run) { 767 trigger_error($affected->getMessage(), E_USER_ERROR); 768 } 769 } 770 return $affected; 771 } 545 772 } 546 773 -
branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php
r18777 r18784 38 38 class SC_DB_DBFactory_MYSQL extends SC_DB_DBFactory { 39 39 40 /** SC_Query インスタンス */ 41 var $objQuery; 42 40 43 /** 41 44 * DBのバージョンを取得する. … … 45 48 */ 46 49 function sfGetDBVersion($dsn = "") { 47 $objQuery = new SC_Query($this->getDSN($dsn), true, true);50 $objQuery =& SC_Query::getSingletonInstance(); 48 51 $val = $objQuery->getOne("select version()"); 49 52 return "MySQL " . $val; … … 77 80 */ 78 81 function getCharSet() { 79 $objQuery = new SC_Query();82 $objQuery =& SC_Query::getSingletonInstance(); 80 83 $arrRet = $objQuery->getAll("SHOW VARIABLES LIKE 'char%'"); 81 84 return $arrRet; … … 90 93 function getTableExistsSql($table_name) { 91 94 // XXX 何故かブレースホルダが使えない 92 $objQuery = new SC_Query();95 $objQuery =& SC_Query::getSingletonInstance(); 93 96 return "SHOW TABLE STATUS LIKE " . $objQuery->quote($table_name); 94 97 } … … 102 105 */ 103 106 function getTableIndex($index_name, $table_name = "") { 104 $objQuery = new SC_Query("", true, true);107 $objQuery =& SC_Query::getSingletonInstance(); 105 108 return $objQuery->getAll("SHOW INDEX FROM " . $table_name . " WHERE Key_name = ?", 106 109 array($index_name)); … … 117 120 */ 118 121 function createTableIndex($index_name, $table_name, $col_name, $length = 0) { 119 $objQuery = new SC_Query($dsn, true, true);122 $objQuery =& SC_Query::getSingletonInstance(); 120 123 $objQuery->query("CREATE INDEX ? ON ? (?(?))", array($index_name, $table_name, $col_name, $length)); 121 124 } … … 128 131 */ 129 132 function sfGetColumnList($table_name) { 130 $objQuery = new SC_Query();133 $objQuery =& SC_Query::getSingletonInstance(); 131 134 $sql = "SHOW COLUMNS FROM " . $table_name; 132 135 $arrColList = $objQuery->getAll($sql); … … 144 147 */ 145 148 function findTableNames($expression = "") { 146 $objQuery = new SC_Query();149 $objQuery =& SC_Query::getSingletonInstance(); 147 150 $sql = "SHOW TABLES LIKE ?"; 148 151 $arrColList = $objQuery->getAll($sql, array("%" . $expression . "%")); -
branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php
r18775 r18784 46 46 */ 47 47 function sfGetDBVersion($dsn = "") { 48 $objQuery = new SC_Query($this->getDSN($dsn), true, true);48 $objQuery =& SC_Query::getSingletonInstance(); 49 49 $val = $objQuery->getOne("select version()"); 50 50 $arrLine = split(" " , $val); … … 72 72 */ 73 73 function getTableExistsSql($table_name) { 74 $objQuery = new SC_Query();74 $objQuery =& SC_Query::getSingletonInstance(); 75 75 return " SELECT relname " 76 76 . " FROM pg_class " … … 88 88 */ 89 89 function getTableIndex($index_name, $table_name = "") { 90 $objQuery = new SC_Query("", true, true);90 $objQuery =& SC_Query::getSingletonInstance(); 91 91 return $objQuery->getAll("SELECT relname FROM pg_class WHERE relname = ?", 92 92 array($index_name)); … … 103 103 */ 104 104 function createTableIndex($index_name, $table_name, $col_name, $length = 0) { 105 $objQuery = new SC_Query($dsn, true, true);105 $objQuery =& SC_Query::getSingletonInstance(); 106 106 $objQuery->query("CREATE INDEX ? ON ? (?)", array($index_name, $table_name, $col_name)); 107 107 } … … 114 114 */ 115 115 function sfGetColumnList($table_name) { 116 $objQuery = new SC_Query();116 $objQuery =& SC_Query::getSingletonInstance(); 117 117 $sql = " SELECT a.attname " 118 118 . " FROM pg_class c, pg_attribute a " … … 137 137 */ 138 138 function findTableNames($expression = "") { 139 $objQuery = new SC_Query();139 $objQuery =& SC_Query::getSingletonInstance(); 140 140 $sql = " SELECT c.relname AS name, " 141 141 . " CASE c.relkind " -
branches/version-2_5-dev/data/class/helper/SC_Helper_DB.php
r18777 r18784 70 70 $dsn = $dbFactory->getDSN($dsn); 71 71 72 $objQuery = new SC_Query($dsn, true, true);72 $objQuery =& SC_Query::getSingletonInstance(); 73 73 // 正常に接続されている場合 74 74 if(!$objQuery->isError()) { … … 109 109 if(!$this->sfTabaleExists($table_name, $dsn)) return false; 110 110 111 $objQuery = new SC_Query($dsn, true, true);111 $objQuery =& SC_Query::getSingletonInstance(); 112 112 // 正常に接続されている場合 113 113 if(!$objQuery->isError()) { … … 155 155 if (!$this->sfTabaleExists($table_name, $dsn)) return false; 156 156 157 $objQuery = new SC_Query($dsn, true, true);157 $objQuery =& SC_Query::getSingletonInstance(); 158 158 $arrRet = $dbFactory->getTableIndex($index_name, $table_name); 159 159 … … 186 186 $dsn = $dbFactory->getDSN($dsn); 187 187 188 $objQuery = new SC_Query($dsn, true, true);188 $objQuery =& SC_Query::getSingletonInstance(); 189 189 $count = $objQuery->count($table_name, $where, $arrval); 190 190 … … 211 211 212 212 if ($force || !isset($data)) { 213 $objQuery = new SC_Query();213 $objQuery =& SC_Query::getSingletonInstance(); 214 214 $arrRet = $objQuery->select('*', 'dtb_baseinfo'); 215 215 … … 229 229 if(!$this->g_root_on) { 230 230 $this->g_root_on = true; 231 $objQuery = new SC_Query();231 $objQuery =& SC_Query::getSingletonInstance(); 232 232 233 233 if (!isset($_GET['product_id'])) $_GET['product_id'] = ""; … … 267 267 268 268 // 商品規格取得 269 $objQuery = new SC_Query();269 $objQuery =& SC_Query::getSingletonInstance(); 270 270 $col = 'product_id, deliv_fee, name, product_code, main_list_image, main_image, price01, price02, point_rate, product_class_id, classcategory_id1, classcategory_id2, class_id1, class_id2, stock, stock_unlimited, sale_limit'; 271 271 $table = 'vw_product_class AS prdcls'; … … 284 284 */ 285 285 function sfGetPayment() { 286 $objQuery = new SC_Query();286 $objQuery =& SC_Query::getSingletonInstance(); 287 287 // 購入金額が条件額以下の項目を取得 288 288 $where = "del_flg = 0"; … … 430 430 if($uniqid != "") { 431 431 // 既存データのチェック 432 $objQuery = new SC_Query();432 $objQuery =& SC_Query::getSingletonInstance(); 433 433 $where = "order_temp_id = ?"; 434 434 $cnt = $objQuery->count("dtb_order_temp", $where, array($uniqid)); … … 501 501 */ 502 502 function sfEditCustomerData($array, $arrRegistColumn) { 503 $objQuery = new SC_Query();503 $objQuery =& SC_Query::getSingletonInstance(); 504 504 505 505 foreach ($arrRegistColumn as $data) { … … 535 535 */ 536 536 function sfGetCustomerPoint($order_id, $use_point, $add_point) { 537 $objQuery = new SC_Query();537 $objQuery =& SC_Query::getSingletonInstance(); 538 538 $arrRet = $objQuery->select("customer_id", "dtb_order", "order_id = ?", array($order_id)); 539 539 $customer_id = $arrRet[0]['customer_id']; … … 563 563 */ 564 564 function sfGetCustomerPointFromCid($customer_id, $use_point, $add_point) { 565 $objQuery = new SC_Query();565 $objQuery =& SC_Query::getSingletonInstance(); 566 566 if (USE_POINT !== false) { 567 567 $arrRet = $objQuery->select("point", "dtb_customer", "customer_id = ?", array($customer_id)); … … 582 582 */ 583 583 function sfGetCatTree($parent_category_id, $count_check = false) { 584 $objQuery = new SC_Query();584 $objQuery =& SC_Query::getSingletonInstance(); 585 585 $col = ""; 586 586 $col .= " cat.category_id,"; … … 626 626 */ 627 627 function sfGetMultiCatTree($product_id, $count_check = false) { 628 $objQuery = new SC_Query();628 $objQuery =& SC_Query::getSingletonInstance(); 629 629 $col = ""; 630 630 $col .= " cat.category_id,"; … … 675 675 function sfGetCatCombName($category_id){ 676 676 // 商品が属するカテゴリIDを縦に取得 677 $objQuery = new SC_Query();677 $objQuery =& SC_Query::getSingletonInstance(); 678 678 $arrCatID = $this->sfGetParents($objQuery, "dtb_category", "parent_category_id", "category_id", $category_id); 679 679 $ConbName = ""; … … 699 699 */ 700 700 function sfGetCat($category_id){ 701 $objQuery = new SC_Query();701 $objQuery =& SC_Query::getSingletonInstance(); 702 702 703 703 // カテゴリーを取得する … … 716 716 function sfGetFirstCat($category_id){ 717 717 // 商品が属するカテゴリIDを縦に取得 718 $objQuery = new SC_Query();718 $objQuery =& SC_Query::getSingletonInstance(); 719 719 $arrRet = array(); 720 720 $arrCatID = $this->sfGetParents($objQuery, "dtb_category", "parent_category_id", "category_id", $category_id); … … 740 740 */ 741 741 function sfGetCategoryList($addwhere = "", $products_check = false, $head = CATEGORY_HEAD) { 742 $objQuery = new SC_Query();742 $objQuery =& SC_Query::getSingletonInstance(); 743 743 $where = "del_flg = 0"; 744 744 … … 778 778 */ 779 779 function sfGetLevelCatList($parent_zero = true) { 780 $objQuery = new SC_Query();780 $objQuery =& SC_Query::getSingletonInstance(); 781 781 782 782 // カテゴリ名リストを取得 … … 838 838 $this->g_category_id = array($category_id); 839 839 } else if (SC_Utils_Ex::sfIsInt($product_id) && $product_id != 0 && $this->sfIsRecord("dtb_products","product_id", $product_id, $status)) { 840 $objQuery = new SC_Query();840 $objQuery =& SC_Query::getSingletonInstance(); 841 841 $where = "product_id = ?"; 842 842 $category_id = $objQuery->getCol("dtb_product_categories", "category_id", "product_id = ?", array($product_id)); … … 862 862 "product_id" => $product_id); 863 863 864 $objQuery = new SC_Query();864 $objQuery =& SC_Query::getSingletonInstance(); 865 865 866 866 // 現在の商品カテゴリを取得 … … 894 894 "product_id" => $product_id); 895 895 896 $objQuery = new SC_Query();896 $objQuery =& SC_Query::getSingletonInstance(); 897 897 898 898 // 現在の商品カテゴリを取得 … … 925 925 $sqlval = array("category_id" => $category_id, 926 926 "product_id" => $product_id); 927 $objQuery = new SC_Query();927 $objQuery =& SC_Query::getSingletonInstance(); 928 928 $objQuery->delete("dtb_product_categories", 929 929 "category_id = ? AND product_id = ?", $sqlval); … … 938 938 */ 939 939 function updateProductCategories($arrCategory_id, $product_id) { 940 $objQuery = new SC_Query();940 $objQuery =& SC_Query::getSingletonInstance(); 941 941 942 942 // 現在のカテゴリ情報を取得 … … 1051 1051 */ 1052 1052 function sfGetChildrenArray($table, $pid_name, $id_name, $id) { 1053 $objQuery = new SC_Query();1053 $objQuery =& SC_Query::getSingletonInstance(); 1054 1054 $col = $pid_name . "," . $id_name; 1055 1055 $arrData = $objQuery->select($col, $table); … … 1120 1120 */ 1121 1121 function sfGetParentsArray($table, $pid_name, $id_name, $id) { 1122 $objQuery = new SC_Query();1122 $objQuery =& SC_Query::getSingletonInstance(); 1123 1123 $col = $pid_name . "," . $id_name; 1124 1124 $arrData = $objQuery->select($col, $table); … … 1169 1169 */ 1170 1170 function sfGetOrderTemp($order_temp_id) { 1171 $objQuery = new SC_Query();1171 $objQuery =& SC_Query::getSingletonInstance(); 1172 1172 $where = "order_temp_id = ?"; 1173 1173 $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($order_temp_id)); … … 1184 1184 */ 1185 1185 function sfGetIDValueList($table, $keyname, $valname) { 1186 $objQuery = new SC_Query();1186 $objQuery =& SC_Query::getSingletonInstance(); 1187 1187 $col = "$keyname, $valname"; 1188 1188 $objQuery->setWhere("del_flg = 0"); … … 1208 1208 */ 1209 1209 function sfRankUp($table, $colname, $id, $andwhere = "") { 1210 $objQuery = new SC_Query();1210 $objQuery =& SC_Query::getSingletonInstance(); 1211 1211 $objQuery->begin(); 1212 1212 $where = "$colname = ?"; … … 1248 1248 */ 1249 1249 function sfRankDown($table, $colname, $id, $andwhere = "") { 1250 $objQuery = new SC_Query();1250 $objQuery =& SC_Query::getSingletonInstance(); 1251 1251 $objQuery->begin(); 1252 1252 $where = "$colname = ?"; … … 1288 1288 */ 1289 1289 function sfMoveRank($tableName, $keyIdColumn, $keyId, $pos, $where = "") { 1290 $objQuery = new SC_Query();1290 $objQuery =& SC_Query::getSingletonInstance(); 1291 1291 $objQuery->begin(); 1292 1292 … … 1353 1353 function sfDeleteRankRecord($table, $colname, $id, $andwhere = "", 1354 1354 $delete = false) { 1355 $objQuery = new SC_Query();1355 $objQuery =& SC_Query::getSingletonInstance(); 1356 1356 $objQuery->begin(); 1357 1357 // 削除レコードのランクを取得する。 … … 1449 1449 */ 1450 1450 function sfGetDelivTime($payment_id = "") { 1451 $objQuery = new SC_Query();1451 $objQuery =& SC_Query::getSingletonInstance(); 1452 1452 1453 1453 $deliv_id = ""; … … 1479 1479 $payment_id = isset($arrData['payment_id']) ? $arrData['payment_id'] : ""; 1480 1480 1481 $objQuery = new SC_Query();1481 $objQuery =& SC_Query::getSingletonInstance(); 1482 1482 1483 1483 $deliv_id = ""; … … 1505 1505 } 1506 1506 1507 $objQuery = new SC_Query();1507 $objQuery =& SC_Query::getSingletonInstance(); 1508 1508 $where = "deliv_id = ? AND pref = ?"; 1509 1509 $arrRet= $objQuery->select("fee", "dtb_delivfee", $where, array($deliv_id, $pref)); … … 1611 1611 */ 1612 1612 function sfIsRecord($table, $col, $arrval, $addwhere = "") { 1613 $objQuery = new SC_Query();1613 $objQuery =& SC_Query::getSingletonInstance(); 1614 1614 $arrCol = split("[, ]", $col); 1615 1615 … … 1681 1681 $this->g_maker_id = array($maker_id); 1682 1682 } else if (SC_Utils_Ex::sfIsInt($product_id) && $product_id != 0 && $this->sfIsRecord("dtb_products","product_id", $product_id, $status)) { 1683 $objQuery = new SC_Query();1683 $objQuery =& SC_Query::getSingletonInstance(); 1684 1684 $where = "product_id = ?"; 1685 1685 $maker_id = $objQuery->getCol("dtb_products", "maker_id", "product_id = ?", array($product_id)); … … 1703 1703 */ 1704 1704 function sfGetMakerList($addwhere = "", $products_check = false) { 1705 $objQuery = new SC_Query();1705 $objQuery =& SC_Query::getSingletonInstance(); 1706 1706 $where = "del_flg = 0"; 1707 1707 … … 1743 1743 */ 1744 1744 function lfCalcAllProductsDelivFee(&$arrData, &$objCartSess) { 1745 $objQuery = new SC_Query();1745 $objQuery =& SC_Query::getSingletonInstance(); 1746 1746 $deliv_fee_total = 0; 1747 1747 $max = $objCartSess->getMax(); … … 1774 1774 */ 1775 1775 function sfUpdateOrderNameCol($order_id, $temp_table = false) { 1776 $objQuery = new SC_Query();1776 $objQuery =& SC_Query::getSingletonInstance(); 1777 1777 1778 1778 if ($temp_table) { … … 1848 1848 */ 1849 1849 function sfUpdateOrderStatus($orderId, $newStatus = null, $newAddPoint = null, $newUsePoint = null) { 1850 $objQuery = new SC_Query();1850 $objQuery =& SC_Query::getSingletonInstance(); 1851 1851 1852 1852 $arrOrderOld = $objQuery->getRow('dtb_order', 'status, add_point, use_point, customer_id', 'order_id = ?', array($orderId)); … … 1955 1955 function sfExecSqlByFile($sqlFilePath) { 1956 1956 if (file_exists($sqlFilePath)) { 1957 $objQuery = new SC_Query();1957 $objQuery =& SC_Query::getSingletonInstance(); 1958 1958 1959 1959 $sqls = file_get_contents($sqlFilePath); … … 1981 1981 if (!SC_Utils_Ex::sfIsInt($product_id)) return false; 1982 1982 1983 $objQuery = new SC_Query();1983 $objQuery =& SC_Query::getSingletonInstance(); 1984 1984 $where = 'product_id = ? AND (classcategory_id1 <> 0 OR classcategory_id2 <> 0)'; 1985 1985 $count = $objQuery->count('dtb_products_class', $where, array($product_id)); … … 1994 1994 */ 1995 1995 function chkCartDown($objCartSess) { 1996 $objQuery = new SC_Query();1996 $objQuery =& SC_Query::getSingletonInstance(); 1997 1997 $down = false; 1998 1998 $nodown = false;
Note: See TracChangeset
for help on using the changeset viewer.