Index: /branches/version-2_5-dev/html/install/index.php
===================================================================
--- /branches/version-2_5-dev/html/install/index.php	(revision 18763)
+++ /branches/version-2_5-dev/html/install/index.php	(revision 18775)
@@ -867,5 +867,5 @@
         // Debugモード指定
         $options['debug'] = PEAR_DB_DEBUG;
-        $objDB = DB::connect($dsn, $options);
+        $objDB = MDB2::connect($dsn, $options);
         // 接続成功
         if(!PEAR::isError($objDB)) {
Index: /branches/version-2_5-dev/html/install/sql/create_table_mysql.sql
===================================================================
--- /branches/version-2_5-dev/html/install/sql/create_table_mysql.sql	(revision 18764)
+++ /branches/version-2_5-dev/html/install/sql/create_table_mysql.sql	(revision 18775)
@@ -942,5 +942,5 @@
     create_date datetime NOT NULL,
     update_date datetime NOT NULL,
-    "convert" text,
+    `convert` text,
     PRIMARY KEY (no)
 ) TYPE=InnoDB;
Index: /branches/version-2_5-dev/data/class/util/SC_Utils.php
===================================================================
--- /branches/version-2_5-dev/data/class/util/SC_Utils.php	(revision 18772)
+++ /branches/version-2_5-dev/data/class/util/SC_Utils.php	(revision 18775)
@@ -1402,5 +1402,8 @@
     }
 
-    // SQLシングルクォート対応
+    /**
+     * SQLシングルクォート対応
+     * @deprecated SC_Query::quote() を使用すること
+     */
     function sfQuoteSmart($in){
 
Index: /branches/version-2_5-dev/data/class/db/SC_DB_DBFactory.php
===================================================================
--- /branches/version-2_5-dev/data/class/db/SC_DB_DBFactory.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/db/SC_DB_DBFactory.php	(revision 18775)
@@ -95,7 +95,8 @@
      * テーブルの存在チェックを行う SQL 文を返す.
      *
+     * @param string $table_name 存在チェックを行うテーブル名
      * @return string テーブルの存在チェックを行う SQL 文
      */
-    function getTableExistsSql() { return null; }
+    function getTableExistsSql($table_name) { return null; }
 
     /**
Index: /branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php
===================================================================
--- /branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php	(revision 18775)
@@ -85,8 +85,11 @@
      * テーブルの存在チェックを行う SQL 文を返す.
      *
+     * @param string $table_name 存在チェックを行うテーブル名
      * @return string テーブルの存在チェックを行う SQL 文
      */
-    function getTableExistsSql() {
-        return "SHOW TABLE STATUS LIKE ?";
+    function getTableExistsSql($table_name) {
+        // XXX 何故かブレースホルダが使えない
+        $objQuery = new SC_Query();
+        return "SHOW TABLE STATUS LIKE " . $objQuery->quote($table_name);
     }
 
Index: /branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php
===================================================================
--- /branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php	(revision 18775)
@@ -68,11 +68,13 @@
      * テーブルの存在チェックを行う SQL 文を返す.
      *
+     * @param string $table_name 存在チェックを行うテーブル名
      * @return string テーブルの存在チェックを行う SQL 文
      */
-    function getTableExistsSql() {
+    function getTableExistsSql($table_name) {
+        $objQuery = new SC_Query();
         return "  SELECT relname "
              . "    FROM pg_class "
              . "   WHERE (relkind = 'r' OR relkind = 'v') "
-             . "     AND relname = ? "
+             . "     AND relname = " . $objQuery->quote($table_name)
              . "GROUP BY relname";
     }
Index: /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Complete.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Complete.php	(revision 18772)
+++ /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Complete.php	(revision 18775)
@@ -521,5 +521,5 @@
 
         // 既に存在する詳細レコードを消しておく。
-        $objQuery->delete("dtb_order_detail", "order_id = $order_id");
+        $objQuery->delete("dtb_order_detail", "order_id = ?", array($order_id));
 
         // 規格名一覧
Index: /branches/version-2_5-dev/data/class/helper/SC_Helper_DB.php
===================================================================
--- /branches/version-2_5-dev/data/class/helper/SC_Helper_DB.php	(revision 18701)
+++ /branches/version-2_5-dev/data/class/helper/SC_Helper_DB.php	(revision 18775)
@@ -74,6 +74,9 @@
         if(!$objQuery->isError()) {
             list($db_type) = split(":", $dsn);
-            $sql = $dbFactory->getTableExistsSql();
-            $arrRet = $objQuery->getAll($sql, array($table_name));
+            /*
+             * XXX MySQL で, 何故かブレースホルダが使えない.
+             */
+            $sql = $dbFactory->getTableExistsSql($table_name);
+            $arrRet = $objQuery->getAll($sql);
             if(count($arrRet) > 0) {
                 return true;
Index: /branches/version-2_5-dev/data/class/SC_Query.php
===================================================================
--- /branches/version-2_5-dev/data/class/SC_Query.php	(revision 18774)
+++ /branches/version-2_5-dev/data/class/SC_Query.php	(revision 18775)
@@ -161,4 +161,11 @@
 
         $sth = $this->conn->prepare($sql);
+        if (PEAR::isError($sth)) {
+            /*
+             * XXX インストーラのテーブルチェックに失敗してしまう.
+             * エラーハンドリングの方法を要検討
+             */
+            return;
+        }
         $affected = $sth->execute($arrval);
 
@@ -487,5 +494,9 @@
 
         if (PEAR::isError($result)) {
-            trigger_error($result->getMessage(), E_USER_ERROR);
+            /*
+             * XXX インストーラのテーブルチェックに失敗してしまう.
+             * エラーハンドリングの方法を要検討
+             */
+            //trigger_error($result->getMessage(), E_USER_ERROR);
         }
 
@@ -495,4 +506,6 @@
     /**
      * auto_incrementを取得する.
+     *
+     * XXX MDB2 の sequence 関数を使用する
      *
      * @param string $table_name テーブル名
@@ -501,18 +514,33 @@
     function get_auto_increment($table_name){
         // ロックする
-        $this->query("LOCK TABLES $table_name WRITE");
+        $this->conn->exec("LOCK TABLES $table_name WRITE");
 
         // 次のIncrementを取得
-        $arrRet = $this->getAll("SHOW TABLE STATUS LIKE ?", array($table_name));
+        $arrRet = $this->getAll("SHOW TABLE STATUS LIKE ". $this->quote($table_name));
         $auto_inc_no = $arrRet[0]["Auto_increment"];
 
         // 値をカウントアップしておく
-        $this->query("ALTER TABLE $table_name AUTO_INCREMENT=?" , $auto_inc_no + 1);
+        $this->conn->exec("ALTER TABLE $table_name AUTO_INCREMENT=" . $this->quote($auto_inc_no + 1));
 
         // 解除する
-        $this->query('UNLOCK TABLES');
+        $this->conn->exec('UNLOCK TABLES');
 
         return $auto_inc_no;
     }
+
+    /**
+     * 値を適切にクォートする.
+     *
+     * TODO MDB2 に対応するための暫定的な措置.
+     *      ブレースホルダが使用できない実装があるため.
+     *      本来であれば, MDB2::prepare() を適切に使用するべき
+     *
+     * @see MDB2::quote()
+     * @param string $val クォートを行う文字列
+     * @return string クォートされた文字列
+     */
+    function quote($val) {
+        return $this->conn->quote($val);
+    }
 }
 
