Changeset 21390 for branches/version-2_12-dev/data/class/SC_Query.php
- Timestamp:
- 2012/01/06 19:54:03 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/class/SC_Query.php
r21284 r21390 106 106 107 107 /** 108 * 108 * エラー判定を行う. 109 109 * 110 110 * @deprecated PEAR::isError() を使用して下さい … … 126 126 * @return integer 件数 127 127 */ 128 function count($table, $where = "", $arrWhereVal = array()) { 129 if(strlen($where) <= 0) { 130 $sqlse = "SELECT COUNT(*) FROM $table"; 131 } else { 132 $sqlse = "SELECT COUNT(*) FROM $table WHERE $where"; 133 } 134 $sqlse = $this->dbFactory->sfChangeMySQL($sqlse); 135 return $this->getOne($sqlse, $arrWhereVal); 128 function count($table, $where = '', $arrWhereVal = array()) { 129 return $this->get('COUNT(*)', $table, $where, $arrWhereVal); 130 } 131 132 /** 133 * EXISTS文を実行する. 134 * 135 * @param string $table テーブル名 136 * @param string $where where句 137 * @param array $arrWhereVal プレースホルダ 138 * @return boolean 有無 139 */ 140 function exists($table, $where = '', $arrWhereVal = array()) { 141 $sql_inner = $this->getSql('*', $table, $where, $arrWhereVal); 142 $sql = "SELECT CASE WHEN EXISTS($sql_inner) THEN 1 ELSE 0 END"; 143 $res = $this->getOne($sql, $arrWhereVal); 144 return (bool)$res; 136 145 } 137 146 … … 270 279 } 271 280 272 return $affected->fetchAll($fetchmode); 281 // MySQL での不具合対応のため、一旦変数に退避 282 $arrRet = $affected->fetchAll($fetchmode); 283 284 // PREPAREの解放 285 $sth->free(); 286 287 return $arrRet; 273 288 } 274 289 … … 454 469 * @param string $table テーブル名 455 470 * @param array $sqlval array('カラム名' => '値',...)の連想配列 471 * @param array $arrSql array('カラム名' => 'SQL文',...)の連想配列 472 * @param array $arrSqlVal SQL文の中で使用するプレースホルダ配列 456 473 * @return 457 474 */ 458 function insert($table, $sqlval ) {475 function insert($table, $sqlval, $arrSql = array(), $arrSqlVal = array()) { 459 476 $strcol = ''; 460 477 $strval = ''; 461 478 $find = false; 479 $arrVal = array(); 462 480 463 481 if(count($sqlval) <= 0 ) return false; … … 470 488 } else { 471 489 $strval .= '?,'; 472 $arr val[] = $val;490 $arrVal[] = $val; 473 491 } 474 492 $find = true; 475 493 } 494 495 foreach($arrSql as $key => $val) { 496 $strcol .= $key . ','; 497 $strval .= $val . ','; 498 } 499 500 $arrVal = array_merge($arrVal, $arrSqlVal); 501 476 502 if(!$find) { 477 503 return false; … … 482 508 $sqlin = "INSERT INTO $table(" . $strcol. ") VALUES (" . $strval . ")"; 483 509 // INSERT文の実行 484 $ret = $this->query($sqlin, $arr val, false, null, MDB2_PREPARE_MANIP);510 $ret = $this->query($sqlin, $arrVal, false, null, MDB2_PREPARE_MANIP); 485 511 486 512 return $ret; … … 609 635 } 610 636 611 return $affected->fetchOne(); 637 // MySQL での不具合対応のため、一旦変数に退避 638 $arrRet = $affected->fetchOne(); 639 640 // PREPAREの解放 641 $sth->free(); 642 643 return $arrRet; 612 644 } 613 645 … … 637 669 } 638 670 639 return $affected->fetchRow($fetchmode); 671 // MySQL での不具合対応のため、一旦変数に退避 672 $arrRet = $affected->fetchRow($fetchmode); 673 674 // PREPAREの解放 675 $sth->free(); 676 677 return $arrRet; 640 678 } 641 679 … … 663 701 } 664 702 665 return $affected->fetchCol(); 703 // MySQL での不具合対応のため、一旦変数に退避 704 $arrRet = $affected->fetchCol(); 705 706 // PREPAREの解放 707 $sth->free(); 708 709 return $arrRet; 666 710 } 667 711 … … 744 788 } 745 789 746 // PREPAREの解放790 // PREPAREの解放 747 791 $sth->free(); 748 792 … … 973 1017 } 974 1018 $arrRet = $result->getColumnNames(); 975 // PREPAREの解放1019 // PREPAREの解放 976 1020 $sth->free(); 977 1021
Note: See TracChangeset
for help on using the changeset viewer.