[Svn-src-all:2778] [version-2_12-dev 21677] #1719 (SC_Query#insert SQL文のみの登録ができない)
Seasoft
admin @ mail.ec-cube.net
2012年 3月 26日 (月) 14:37:03 JST
Subversion committed to /home/svn/open 21677
http://svn.ec-cube.net/open_trac/changeset/21677
┌────────────────────────────┐
│更新者 : Seasoft │
│更新日時: 2012-03-26 14:37:03 +0900 (月, 26 3月 2012)│
└────────────────────────────┘
Log:
--------------------------------------------------------
#1719 (SC_Query#insert SQL文のみの登録ができない)
#1613 (typo修正・ソース整形・ソースコメントの改善)
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_12-dev/data/class/SC_Query.php
変更: branches/version-2_12-dev/data/class/SC_Query.php
===================================================================
--- branches/version-2_12-dev/data/class/SC_Query.php 2012-03-26 05:30:52 UTC (rev 21676)
+++ branches/version-2_12-dev/data/class/SC_Query.php 2012-03-26 05:37:03 UTC (rev 21677)
@@ -469,21 +469,20 @@
* INSERT文を実行する.
*
* @param string $table テーブル名
- * @param array $sqlval array('カラム名' => '値', ...)の連想配列
+ * @param array $arrVal array('カラム名' => '値', ...)の連想配列
* @param array $arrSql array('カラム名' => 'SQL文', ...)の連想配列
* @param array $arrSqlVal SQL文の中で使用するプレースホルダ配列
* @param string $from FROM 句・WHERE 句
* @param string $arrFromVal FROM 句・WHERE 句で使用するプレースホルダ配列
- * @return integer|DB_Error 挿入件数またはDB_Error
+ * @return integer|DB_Error|boolean 挿入件数またはエラー(DB_Error, false)
*/
- function insert($table, $sqlval, $arrSql = array(), $arrSqlVal = array(), $from = '', $arrFromVal = array()) {
+ function insert($table, $arrVal, $arrSql = array(), $arrSqlVal = array(), $from = '', $arrFromVal = array()) {
$strcol = '';
$strval = '';
$find = false;
- $arrVal = array();
+ $arrValForQuery = array();
- if(count($sqlval) <= 0) return false;
- foreach ($sqlval as $key => $val) {
+ foreach ($arrVal as $key => $val) {
$strcol .= $key . ',';
if (strcasecmp('Now()', $val) === 0) {
$strval .= 'Now(),';
@@ -491,7 +490,7 @@
$strval .= 'CURRENT_TIMESTAMP,';
} else {
$strval .= '?,';
- $arrVal[] = $val;
+ $arrValForQuery[] = $val;
}
$find = true;
}
@@ -499,9 +498,10 @@
foreach ($arrSql as $key => $val) {
$strcol .= $key . ',';
$strval .= $val . ',';
+ $find = true;
}
- $arrVal = array_merge($arrVal, $arrSqlVal);
+ $arrValForQuery = array_merge($arrValForQuery, $arrSqlVal);
if (!$find) {
return false;
@@ -513,11 +513,11 @@
if (strlen($from) >= 1) {
$sqlin .= ' ' . $from;
- $arrVal = array_merge($arrVal, $arrFromVal);
+ $arrValForQuery = array_merge($arrValForQuery, $arrFromVal);
}
// INSERT文の実行
- $ret = $this->query($sqlin, $arrVal, false, null, MDB2_PREPARE_MANIP);
+ $ret = $this->query($sqlin, $arrValForQuery, false, null, MDB2_PREPARE_MANIP);
return $ret;
}
@@ -526,26 +526,26 @@
* UPDATE文を実行する.
*
* @param string $table テーブル名
- * @param array $sqlval array('カラム名' => '値', ...)の連想配列
+ * @param array $arrVal array('カラム名' => '値', ...)の連想配列
* @param string $where WHERE句
* @param array $arrWhereVal WHERE句用のプレースホルダ配列 (従来は追加カラム用も兼ねていた)
* @param array $arrRawSql 追加カラム
* @param array $arrRawSqlVal 追加カラム用のプレースホルダ配列
* @return
*/
- function update($table, $sqlval, $where = '', $arrWhereVal = array(), $arrRawSql = array(), $arrRawSqlVal = array()) {
+ function update($table, $arrVal, $where = '', $arrWhereVal = array(), $arrRawSql = array(), $arrRawSqlVal = array()) {
$arrCol = array();
- $arrVal = array();
+ $arrValForQuery = array();
$find = false;
- foreach ($sqlval as $key => $val) {
+ foreach ($arrVal as $key => $val) {
if (strcasecmp('Now()', $val) === 0) {
$arrCol[] = $key . '= Now()';
} else if (strcasecmp('CURRENT_TIMESTAMP', $val) === 0) {
$arrCol[] = $key . '= CURRENT_TIMESTAMP';
} else {
$arrCol[] = $key . '= ?';
- $arrVal[] = $val;
+ $arrValForQuery[] = $val;
}
$find = true;
}
@@ -556,7 +556,7 @@
}
}
- $arrVal = array_merge($arrVal, $arrRawSqlVal);
+ $arrValForQuery = array_merge($arrValForQuery, $arrRawSqlVal);
if (empty($arrCol)) {
return false;
@@ -567,7 +567,7 @@
if (is_array($arrWhereVal)) { // 旧版との互換用
// プレースホルダー用に配列を追加
- $arrVal = array_merge($arrVal, $arrWhereVal);
+ $arrValForQuery = array_merge($arrValForQuery, $arrWhereVal);
}
$sqlup = "UPDATE $table SET $strcol";
@@ -576,7 +576,7 @@
}
// UPDATE文の実行
- return $this->query($sqlup, $arrVal, false, null, MDB2_PREPARE_MANIP);
+ return $this->query($sqlup, $arrValForQuery, false, null, MDB2_PREPARE_MANIP);
}
/**
Svn-src-all メーリングリストの案内