Changeset 18775


Ignore:
Timestamp:
2010/08/04 13:52:27 (11 years ago)
Author:
nanasess
bzr:base-revision:
svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18774
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/class/SC_Query.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_Query.php
data/class/db/SC_DB_DBFactory.php 15123@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fdb%2FSC_DB_DBFactory.php
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php 15123@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fdb%2Fdbfactory%2FSC_DB_DBFactory_MYSQL.php
data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php 15123@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fdb%2Fdbfactory%2FSC_DB_DBFactory_PGSQL.php
data/class/helper/SC_Helper_DB.php 15176@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fhelper%2FSC_Helper_DB.php
data/class/pages/shopping/LC_Page_Shopping_Complete.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Complete.php
data/class/util/SC_Utils.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Futil%2FSC_Utils.php
html/install/index.php 16809@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Findex.php
html/install/sql/create_table_mysql.sql 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Finstall%2Fsql%2Fcreate_table_mysql.sql
bzr:mapping-version:
v4
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20100804045224-nsulc26bh1ttqfrb
bzr:revno:
2258
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:text-parents:

data/class/db/SC_DB_DBFactory.php ohkouchi@loop-az.jp-20100614082857-g3n9wn9zakpc7a0m
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php ohkouchi@loop-az.jp-20100614082857-g3n9wn9zakpc7a0m
data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php ohkouchi@loop-az.jp-20100614082857-g3n9wn9zakpc7a0m
data/class/helper/SC_Helper_DB.php ohkouchi@loop-az.jp-20100614082857-g3n9wn9zakpc7a0m
data/class/pages/shopping/LC_Page_Shopping_Complete.php ohkouchi@loop-az.jp-20100803084717-9sbbuk4o59x5sio4
data/class/util/SC_Utils.php ohkouchi@loop-az.jp-20100803084717-9sbbuk4o59x5sio4
html/install/index.php ohkouchi@loop-az.jp-20100726081655-tqxqwy02bxqhswcu
html/install/sql/create_table_mysql.sql svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:18764
bzr:timestamp:
2010-08-04 13:52:24.183000088 +0900
bzr:user-agent:
bzr2.1.2+bzr-svn1.0.2
svn:original-date:
2010-08-04T04:52:24.183000Z
Message:

#565(SC_DbConn クラスの削除)

  • MySQL でインストーラ及び購入完了画面でエラーが発生していたのを修正
  • SC_Query::quote() を追加
Location:
branches/version-2_5-dev
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/SC_Query.php

    r18774 r18775  
    161161 
    162162        $sth = $this->conn->prepare($sql); 
     163        if (PEAR::isError($sth)) { 
     164            /* 
     165             * XXX インストーラのテーブルチェックに失敗してしまう. 
     166             * エラーハンドリングの方法を要検討 
     167             */ 
     168            return; 
     169        } 
    163170        $affected = $sth->execute($arrval); 
    164171 
     
    487494 
    488495        if (PEAR::isError($result)) { 
    489             trigger_error($result->getMessage(), E_USER_ERROR); 
     496            /* 
     497             * XXX インストーラのテーブルチェックに失敗してしまう. 
     498             * エラーハンドリングの方法を要検討 
     499             */ 
     500            //trigger_error($result->getMessage(), E_USER_ERROR); 
    490501        } 
    491502 
     
    495506    /** 
    496507     * auto_incrementを取得する. 
     508     * 
     509     * XXX MDB2 の sequence 関数を使用する 
    497510     * 
    498511     * @param string $table_name テーブル名 
     
    501514    function get_auto_increment($table_name){ 
    502515        // ロックする 
    503         $this->query("LOCK TABLES $table_name WRITE"); 
     516        $this->conn->exec("LOCK TABLES $table_name WRITE"); 
    504517 
    505518        // 次のIncrementを取得 
    506         $arrRet = $this->getAll("SHOW TABLE STATUS LIKE ?", array($table_name)); 
     519        $arrRet = $this->getAll("SHOW TABLE STATUS LIKE ". $this->quote($table_name)); 
    507520        $auto_inc_no = $arrRet[0]["Auto_increment"]; 
    508521 
    509522        // 値をカウントアップしておく 
    510         $this->query("ALTER TABLE $table_name AUTO_INCREMENT=?" , $auto_inc_no + 1); 
     523        $this->conn->exec("ALTER TABLE $table_name AUTO_INCREMENT=" . $this->quote($auto_inc_no + 1)); 
    511524 
    512525        // 解除する 
    513         $this->query('UNLOCK TABLES'); 
     526        $this->conn->exec('UNLOCK TABLES'); 
    514527 
    515528        return $auto_inc_no; 
    516529    } 
     530 
     531    /** 
     532     * 値を適切にクォートする. 
     533     * 
     534     * TODO MDB2 に対応するための暫定的な措置. 
     535     *      ブレースホルダが使用できない実装があるため. 
     536     *      本来であれば, MDB2::prepare() を適切に使用するべき 
     537     * 
     538     * @see MDB2::quote() 
     539     * @param string $val クォートを行う文字列 
     540     * @return string クォートされた文字列 
     541     */ 
     542    function quote($val) { 
     543        return $this->conn->quote($val); 
     544    } 
    517545} 
    518546 
  • branches/version-2_5-dev/data/class/db/SC_DB_DBFactory.php

    r18701 r18775  
    9595     * テーブルの存在チェックを行う SQL 文を返す. 
    9696     * 
     97     * @param string $table_name 存在チェックを行うテーブル名 
    9798     * @return string テーブルの存在チェックを行う SQL 文 
    9899     */ 
    99     function getTableExistsSql() { return null; } 
     100    function getTableExistsSql($table_name) { return null; } 
    100101 
    101102    /** 
  • branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php

    r18701 r18775  
    8585     * テーブルの存在チェックを行う SQL 文を返す. 
    8686     * 
     87     * @param string $table_name 存在チェックを行うテーブル名 
    8788     * @return string テーブルの存在チェックを行う SQL 文 
    8889     */ 
    89     function getTableExistsSql() { 
    90         return "SHOW TABLE STATUS LIKE ?"; 
     90    function getTableExistsSql($table_name) { 
     91        // XXX 何故かブレースホルダが使えない 
     92        $objQuery = new SC_Query(); 
     93        return "SHOW TABLE STATUS LIKE " . $objQuery->quote($table_name); 
    9194    } 
    9295 
  • branches/version-2_5-dev/data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php

    r18701 r18775  
    6868     * テーブルの存在チェックを行う SQL 文を返す. 
    6969     * 
     70     * @param string $table_name 存在チェックを行うテーブル名 
    7071     * @return string テーブルの存在チェックを行う SQL 文 
    7172     */ 
    72     function getTableExistsSql() { 
     73    function getTableExistsSql($table_name) { 
     74        $objQuery = new SC_Query(); 
    7375        return "  SELECT relname " 
    7476             . "    FROM pg_class " 
    7577             . "   WHERE (relkind = 'r' OR relkind = 'v') " 
    76              . "     AND relname = ? " 
     78             . "     AND relname = " . $objQuery->quote($table_name) 
    7779             . "GROUP BY relname"; 
    7880    } 
  • branches/version-2_5-dev/data/class/helper/SC_Helper_DB.php

    r18701 r18775  
    7474        if(!$objQuery->isError()) { 
    7575            list($db_type) = split(":", $dsn); 
    76             $sql = $dbFactory->getTableExistsSql(); 
    77             $arrRet = $objQuery->getAll($sql, array($table_name)); 
     76            /* 
     77             * XXX MySQL で, 何故かブレースホルダが使えない. 
     78             */ 
     79            $sql = $dbFactory->getTableExistsSql($table_name); 
     80            $arrRet = $objQuery->getAll($sql); 
    7881            if(count($arrRet) > 0) { 
    7982                return true; 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Complete.php

    r18772 r18775  
    521521 
    522522        // 既に存在する詳細レコードを消しておく。 
    523         $objQuery->delete("dtb_order_detail", "order_id = $order_id"); 
     523        $objQuery->delete("dtb_order_detail", "order_id = ?", array($order_id)); 
    524524 
    525525        // 規格名一覧 
  • branches/version-2_5-dev/data/class/util/SC_Utils.php

    r18772 r18775  
    14021402    } 
    14031403 
    1404     // SQLシングルクォート対応 
     1404    /** 
     1405     * SQLシングルクォート対応 
     1406     * @deprecated SC_Query::quote() を使用すること 
     1407     */ 
    14051408    function sfQuoteSmart($in){ 
    14061409 
  • branches/version-2_5-dev/html/install/index.php

    r18763 r18775  
    867867        // Debugモード指定 
    868868        $options['debug'] = PEAR_DB_DEBUG; 
    869         $objDB = DB::connect($dsn, $options); 
     869        $objDB = MDB2::connect($dsn, $options); 
    870870        // 接続成功 
    871871        if(!PEAR::isError($objDB)) { 
  • branches/version-2_5-dev/html/install/sql/create_table_mysql.sql

    r18764 r18775  
    942942    create_date datetime NOT NULL, 
    943943    update_date datetime NOT NULL, 
    944     "convert" text, 
     944    `convert` text, 
    945945    PRIMARY KEY (no) 
    946946) TYPE=InnoDB; 
Note: See TracChangeset for help on using the changeset viewer.