Changeset 18098 for branches/comu-ver2/data/class/SC_Query.php
- Timestamp:
- 2009/06/12 14:45:35 (17 years ago)
- File:
-
- 1 edited
-
branches/comu-ver2/data/class/SC_Query.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/comu-ver2/data/class/SC_Query.php
r18091 r18098 277 277 * @param array $sqlval array('カラム名' => '値',...)の連想配列 278 278 * @param string $where WHERE句 279 * @param array $arr add $addcol用のプレースホルダ配列280 * @param string $a ddcol 追加カラム279 * @param array $arrValIn $where,$arrRawSql用のプレースホルダ配列 280 * @param string $arrRawSql 追加カラム 281 281 * @return 282 282 */ 283 function update($table, $sqlval, $where = "", $arradd = "", $addcol = "") { 284 $strcol = ''; 283 function update($table, $sqlval, $where = "", $arrValIn = array(), $arrRawSql = array()) { 284 $arrCol = array(); 285 $arrVal = array(); 285 286 $find = false; 286 287 foreach ($sqlval as $key => $val) { 287 if (eregi("^Now\(\)$", $val)) {288 $ strcol .= $key . '= Now(),';288 if (eregi("^Now\(\)$", $val)) { 289 $arrCol[] = $key . '= Now()'; 289 290 } else { 290 $ strcol .= $key . '= ?,';291 $arr val[] = $val;291 $arrCol[] = $key . '= ?'; 292 $arrVal[] = $val; 292 293 } 293 294 $find = true; 294 295 } 295 if(!$find) { 296 297 if ($arrRawSql != "") { 298 foreach($arrRawSql as $key => $val) { 299 $arrCol[] = "$key = $val"; 300 } 301 } 302 303 if (empty($arrCol)) { 296 304 return false; 297 305 } 298 306 299 if($addcol != "") {300 foreach($addcol as $key => $val) {301 $strcol .= "$key = $val,";302 }303 }304 305 307 // 文末の","を削除 306 $strcol = ereg_replace(",$","",$strcol); 307 308 if($where != "") { 309 $sqlup = "UPDATE $table SET $strcol WHERE $where"; 310 } else { 311 $sqlup = "UPDATE $table SET $strcol"; 312 } 313 314 if(is_array($arradd)) { 308 $strcol = implode(', ', $arrCol); 309 310 if (is_array($arrValIn)) { // 旧版との互換用 315 311 // プレースホルダー用に配列を追加 316 foreach($arradd as $val) { 317 $arrval[] = $val; 318 } 312 $arrVal = array_merge($arrVal, $arrValIn); 313 } 314 315 $sqlup = "UPDATE $table SET $strcol"; 316 if (strlen($where) >= 1) { 317 $sqlup .= " WHERE $where"; 319 318 } 320 319 321 320 // UPDATE文の実行 322 $ret = $this->conn->query($sqlup, $arrval); 323 return $ret; 321 return $this->conn->query($sqlup, $arrVal); 324 322 } 325 323 … … 367 365 } 368 366 369 // 一行を取得 370 function getrow($table, $col, $where = "", $arrval = array()) { 371 if(strlen($where) <= 0) { 372 $sqlse = "SELECT $col FROM $table"; 373 } else { 374 $sqlse = "SELECT $col FROM $table WHERE $where"; 367 /** 368 * 一行をカラム名をキーとした連想配列として取得 369 * 370 * @param string $table テーブル名 371 * @param string $col カラム名 372 * @param string $where WHERE句 373 * @param array $arrVal プレースホルダ配列 374 * @param integer $fetchmode 使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。 375 * @return array array('カラム名' => '値', ...)の連想配列 376 */ 377 function getRow($table, $col, $where = "", $arrVal = array(), $fetchmode = DB_FETCHMODE_ASSOC) { 378 $sqlse = "SELECT $col FROM $table"; 379 380 if (strlen($where) >= 1) { 381 $sqlse .= " WHERE $where"; 375 382 } 376 383 // SQL文の実行 377 $ret = $this->conn->getRow($sqlse, $arrval); 378 379 return $ret; 384 return $this->conn->getRow($sqlse, $arrVal ,$fetchmode); 380 385 } 381 386
Note: See TracChangeset
for help on using the changeset viewer.
