Changeset 15236 for branches/feature-module-update/data
- Timestamp:
- 2007/08/08 16:00:34 (17 years ago)
- Location:
- branches/feature-module-update/data/class/db
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/data/class/db/SC_DB_DBFactory.php
r15233 r15236 62 62 * DBのバージョンを取得する. 63 63 * 64 * @param string $dsn データベース接続詞 64 * @param string $dsn データソース名 65 * @return string データベースのバージョン 65 66 */ 66 function sfGetDBVersion($dsn = "") { }67 function sfGetDBVersion($dsn = "") { return null; } 67 68 68 69 /** … … 72 73 * @return string MySQL 用に置換した SQL 文 73 74 */ 74 function sfChangeMySQL($sql) {} 75 function sfChangeMySQL($sql) { return null; } 76 77 /** 78 * テーブルの存在チェックを行う SQL 文を返す. 79 * 80 * @return string テーブルの存在チェックを行う SQL 文 81 */ 82 function getTableExistsSql() { return null; } 83 84 /** 85 * インデックスの検索結果を配列で返す. 86 * 87 * @param string $index_name インデックス名 88 * @param string $table_name テーブル名 89 * @return array インデックスの検索結果の配列 90 */ 91 function getTableIndex($index_name, $table_name = "") { return array(); } 92 93 /** 94 * インデックスを作成する. 95 * 96 * @param string $index_name インデックス名 97 * @param string $table_name テーブル名 98 * @param string $col_name カラム名 99 * @param integer $length 作成するインデックスのバイト長 100 * @return void 101 */ 102 function createTableIndex($index_name, $table_name, $col_name, $length = 0) {} 103 104 /** 105 * テーブルのカラム一覧を取得する. 106 * 107 * @param string $table_name テーブル名 108 * @return array テーブルのカラム一覧の配列 109 */ 110 function sfGetColumnList($table_name) { array(); } 75 111 } 76 112 ?> -
branches/feature-module-update/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php
r15233 r15236 52 52 $sql = $this->sfChangeRANDOM($sql); 53 53 return $sql; 54 } 55 56 /** 57 * テーブルの存在チェックを行う SQL 文を返す. 58 * 59 * @return string テーブルの存在チェックを行う SQL 文 60 */ 61 function getTableExistsSql() { 62 return "SHOW TABLE STATUS LIKE ?"; 63 } 64 65 /** 66 * インデックスの検索結果を配列で返す. 67 * 68 * @param string $index_name インデックス名 69 * @param string $table_name テーブル名 70 * @return array インデックスの検索結果の配列 71 */ 72 function getTableIndex($index_name, $table_name = "") { 73 $objQuery = new SC_Query("", true, true); 74 return $objQuery->getAll("SHOW INDEX FROM " . $table_name . " WHERE Key_name = ?", 75 array($index_name)); 76 } 77 78 /** 79 * インデックスを作成する. 80 * 81 * @param string $index_name インデックス名 82 * @param string $table_name テーブル名 83 * @param string $col_name カラム名 84 * @param integer $length 作成するインデックスのバイト長 85 * @return void 86 */ 87 function createTableIndex($index_name, $table_name, $col_name, $length = 0) { 88 $objQuery = new SC_Query($dsn, true, true); 89 $objQuery->query("CREATE INDEX ? ON ? (?(?))", array($index_name, $table_name, $col_name, $length)); 90 } 91 92 /** 93 * テーブルのカラム一覧を取得する. 94 * 95 * @param string $table_name テーブル名 96 * @return array テーブルのカラム一覧の配列 97 */ 98 function sfGetColumnList($table_name) { 99 $objQuery = new SC_Query(); 100 $sql = "SHOW COLUMNS FROM " . $table_name; 101 $arrColList = $objQuery->getAll($sql); 102 $arrColList = SC_Utils_Ex::sfswaparray($arrColList); 103 return $arrColList["Field"]; 54 104 } 55 105 -
branches/feature-module-update/data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php
r15233 r15236 49 49 return $sql; 50 50 } 51 52 /** 53 * テーブルの存在チェックを行う SQL 文を返す. 54 * 55 * @return string テーブルの存在チェックを行う SQL 文 56 */ 57 function getTableExistsSql() { 58 return " SELECT relname " 59 . " FROM pg_class " 60 . " WHERE (relkind = 'r' OR relkind = 'v') " 61 . " AND relname = ? " 62 . "GROUP BY relname"; 63 } 64 65 /** 66 * インデックスの検索結果を配列で返す. 67 * 68 * @param string $index_name インデックス名 69 * @param string $table_name テーブル名(PostgreSQL では使用しない) 70 * @return array インデックスの検索結果の配列 71 */ 72 function getTableIndex($index_name, $table_name = "") { 73 $objQuery = new SC_Query("", true, true); 74 return $objQuery->getAll("SELECT relname FROM pg_class WHERE relname = ?", 75 array($index_name)); 76 } 77 78 /** 79 * インデックスを作成する. 80 * 81 * @param string $index_name インデックス名 82 * @param string $table_name テーブル名 83 * @param string $col_name カラム名 84 * @param integer $length 作成するインデックスのバイト長 85 * @return void 86 */ 87 function createTableIndex($index_name, $table_name, $col_name, $length = 0) { 88 $objQuery = new SC_Query($dsn, true, true); 89 $objQuery->query("CREATE INDEX ? ON ? (?)", array($index_name, $table_name, $col_name)); 90 } 91 92 /** 93 * テーブルのカラム一覧を取得する. 94 * 95 * @param string $table_name テーブル名 96 * @return array テーブルのカラム一覧の配列 97 */ 98 function sfGetColumnList($table_name) { 99 $objQuery = new SC_Query(); 100 $sql = " SELECT a.attname " 101 . " FROM pg_class c, pg_attribute a " 102 . " WHERE c.relname=? " 103 . " AND c.oid=a.attrelid " 104 . " AND a.attnum > 0 " 105 . " AND not a.attname " 106 . " LIKE '........pg.dropped.%........' " 107 . "ORDER BY a.attnum"; 108 $arrColList = $objQuery->getAll($sql, array($table_name)); 109 $arrColList = SC_Utils_Ex::sfswaparray($arrColList); 110 return $arrColList["attname"]; 111 } 51 112 } 52 113 ?>
Note: See TracChangeset
for help on using the changeset viewer.