Index: /branches/version-2_11-dev/data/class/SC_Query.php
===================================================================
--- /branches/version-2_11-dev/data/class/SC_Query.php	(revision 21371)
+++ /branches/version-2_11-dev/data/class/SC_Query.php	(revision 21372)
@@ -455,10 +455,13 @@
      * @param string $table テーブル名
      * @param array $sqlval array('カラム名' => '値',...)の連想配列
+     * @param array $arrSql array('カラム名' => 'SQL文',...)の連想配列
+     * @param array $arrSqlVal SQL文の中で使用するプレースホルダ配列
      * @return
      */
-    function insert($table, $sqlval) {
+    function insert($table, $sqlval, $arrSql = array(), $arrSqlVal = array()) {
         $strcol = '';
         $strval = '';
         $find = false;
+        $arrVal = array();
 
         if(count($sqlval) <= 0 ) return false;
@@ -471,8 +474,16 @@
             } else {
                 $strval .= '?,';
-                $arrval[] = $val;
+                $arrVal[] = $val;
             }
             $find = true;
         }
+
+        foreach($arrSql as $key => $val) {
+            $strcol .= $key . ',';
+            $strval .= $val . ',';
+        }
+
+        $arrVal = array_merge($arrVal, $arrSqlVal);
+
         if(!$find) {
             return false;
@@ -483,5 +494,5 @@
         $sqlin = "INSERT INTO $table(" . $strcol. ") VALUES (" . $strval . ")";
         // INSERT文の実行
-        $ret = $this->query($sqlin, $arrval, false, null, MDB2_PREPARE_MANIP);
+        $ret = $this->query($sqlin, $arrVal, false, null, MDB2_PREPARE_MANIP);
 
         return $ret;
Index: /branches/version-2_11-dev/test/createEcCubeData-v25.php
===================================================================
--- /branches/version-2_11-dev/test/createEcCubeData-v25.php	(revision 21317)
+++ /branches/version-2_11-dev/test/createEcCubeData-v25.php	(revision 21372)
@@ -274,15 +274,15 @@
         $sqlval['class_id'] = $this->objQuery->nextVal("dtb_class_class_id");
         $sqlval['name'] = $class_name;
-        $sqlval['rank'] = "~(SELECT x.rank FROM (SELECT CASE
+        $arrRaw['rank'] = "(SELECT x.rank FROM (SELECT CASE
                                       WHEN max(rank) + 1 IS NULL THEN 1
                                       ELSE max(rank) + 1
                                     END as rank
                                FROM dtb_class
-                              WHERE del_flg = 0) as x),";
+                              WHERE del_flg = 0) as x)";
         $sqlval['creator_id'] = 2;
         $sqlval['create_date'] = 'CURRENT_TIMESTAMP';
         $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
         $sqlval['del_flg'] = (string) "0";
-        $this->objQuery->insert("dtb_class", $sqlval);
+        $this->objQuery->insert("dtb_class", $sqlval, $arrRaw);
 
         $this->arrclass_id[] = $sqlval['class_id'];
@@ -300,5 +300,5 @@
         $sqlval['name'] = $classcategory_name;
         $sqlval['class_id'] = $class_id;
-        $sqlval['rank'] = sprintf("~(SELECT x.rank FROM (SELECT CASE
+        $arrRaw['rank'] = sprintf("~(SELECT x.rank FROM (SELECT CASE
                                               WHEN max(rank) + 1 IS NULL THEN 1
                                               ELSE max(rank) + 1
@@ -306,5 +306,5 @@
                                        FROM dtb_classcategory
                                       WHERE del_flg = 0
-                                        AND class_id = %d) as x),", $class_id);
+                                        AND class_id = %d) as x)", $class_id);
         $sqlval['creator_id'] = 2;
         $sqlval['create_date'] = 'CURRENT_TIMESTAMP';
@@ -312,5 +312,5 @@
         $sqlval['del_flg'] = (string) "0";
 
-        $this->objQuery->insert("dtb_classcategory", $sqlval);
+        $this->objQuery->insert("dtb_classcategory", $sqlval, $arrRaw);
 
         switch ($class_name) {
