亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
Array Array Helper Benchmarking Benchmarking Class Caching Caching Driver Calendaring Calendaring Class CAPTCHA CAPTCHA Helper Config Config Class Cookie Cookie Helper Database Connecting to your Database Custom Function Calls Database Caching Class Database Configuration Database Forge Class Database Metadata Database Quick Start: Example Code Database Reference Database Utility Class DB Driver Reference Generating Query Results Queries Query Builder Class Query Helper Methods Transactions Date Date Helper Directory Directory Helper Download Download Helper Email Email Class Email Helper Encrypt Encrypt Class Encryption Encryption Library File File Helper File Uploading File Uploading Class Form Form Helper Form Validation Form Validation FTP FTP Class Functions compatibility_functions common_functions HTML HTML Helper HTML Table HTML Table Class Image Manipulation Image Manipulation Class Inflector Inflector Helper Input Input Class Javascript Javascript Class Language Language Class Language Helper Loader Loader Class Migrations Migrations Class Number Number Helper Output Output Class Pagination Pagination Class Path Path Helper Security Security Class Security Helper Session Session Library Shopping Cart Shopping Cart Class Smiley Smiley Helper String String Helper Template Parser Template Parser Class Text Text Helper Trackback Trackback Class Typography Typography Class Typography Helper Unit Testing Unit Testing Class URI URL User Agent XML XML-RPC and XML-RPC Server Zip Encoding Zip Encoding Class XML-RPC and XML-RPC Server Classes XML Helper User Agent Class URL Helper URI Class
characters

Database Forge類包含幫助您管理數(shù)據(jù)庫的方法。

目錄

  • 數(shù)據(jù)庫偽造類

    • 添加字段

    • 添加鍵

    • 創(chuàng)建一個表格

    • 丟下一張桌子

    • 重命名表

    • 初始化Forge類

    • 創(chuàng)建和刪除數(shù)據(jù)庫

    • 創(chuàng)建和刪除表格

 -  [修改表格](about:blank#修改表格)    
     -  [向列添加列](about:blank#將列添加到表中)    
     -  [從表中刪除列](about:blank#從表中刪除列)    
     -  [修改表格中的列](about:blank#modify-a-column-in-a-table)
 -  [類參考](about:blank#class-reference)

初始化Forge類

重要

為了初始化Forge類,您的數(shù)據(jù)庫驅(qū)動程序必須已經(jīng)運行,因為forge類依賴它。

按如下所示加載Forge類:

$this->load->dbforge()

您還可以將另一個數(shù)據(jù)庫對象傳遞給DB Forge加載程序,以防您要管理的數(shù)據(jù)庫不是默認數(shù)據(jù)庫:

$this->myforge = $this->load->dbforge($this->other_db, TRUE);

在上面的例子中,我們傳遞一個自定義的數(shù)據(jù)庫對象作為第一個參數(shù),然后告訴它返回dbforge對象,而不是直接指定給它$this->dbforge

注意

這兩個參數(shù)都可以單獨使用,只要傳遞一個空值作為第一個參數(shù)就可以跳過它。

初始化后,您將使用該$this->dbforge對象訪問方法:

$this->dbforge->some_method();

創(chuàng)建和刪除數(shù)據(jù)庫

$this->dbforge->create_database(‘db_name’)

允許您創(chuàng)建在第一個參數(shù)中指定的數(shù)據(jù)庫。根據(jù)成功或失敗返回TRUE / FALSE:

if ($this->dbforge->create_database('my_db')){
        echo 'Database created!';}

$this->dbforge->drop_database(‘db_name’)

允許您刪除第一個參數(shù)中指定的數(shù)據(jù)庫。根據(jù)成功或失敗返回TRUE / FALSE:

if ($this->dbforge->drop_database('my_db')){
        echo 'Database deleted!';}

創(chuàng)建和刪除表格

創(chuàng)建表格時,您可能希望做幾件事情。添加字段,將關鍵字添加到表中,更改列。CodeIgniter為此提供了一種機制。

添加字段

字段通過關聯(lián)數(shù)組創(chuàng)建。在數(shù)組中,您必須包含與該字段的數(shù)據(jù)類型相關的“類型”鍵。例如,INT,VARCHAR,TEXT等。許多數(shù)據(jù)類型(例如VARCHAR)也需要一個'約束'鍵。

$fields = array(        
    'users' => array(                
        'type' => 'VARCHAR',                
        'constraint' => '100',        
    ),
);// will translate to "users VARCHAR(100)" when the field is added.

另外,可以使用以下鍵/值:

  • unsigned / true:在字段定義中生成“UNSIGNED”。

  • 默認值/值:在字段定義中生成默認值。

  • null / true:在字段定義中生成“NULL”。沒有這個,該字段將默認為“NOT NULL”。

  • auto_increment / true:在該字段上生成一個auto_increment標志。請注意,字段類型必須是支持此類型的類型,例如整數(shù)。

  • 唯一/真實:為字段定義生成唯一鍵。

$fields = array(        
    'blog_id' => array(                
            'type' => 'INT',                
            'constraint' => 5,                
            'unsigned' => TRUE,                
            'auto_increment' => TRUE
            ),
    'blog_title' => array(                
            'type' => 'VARCHAR',                
            'constraint' => '100',                
            'unique' => TRUE,        
            ),        
    'blog_author' => array(                
            'type' =>'VARCHAR',                
            'constraint' => '100',                
            'default' => 'King of Town',        
            ),        
    'blog_description' => array(                
            'type' => 'TEXT',                
            'null' => TRUE,        
            ),
);

在字段被定義之后,可以使用它們添加,$this->dbforge->add_field($fields);然后調(diào)用該create_table()方法。

$this->dbforge->add_field()

添加字段方法將接受上述數(shù)組。

將字符串作為字段傳遞

如果您確切知道如何創(chuàng)建字段,則可以使用add_field()將字符串傳遞到字段定義中

$this->dbforge->add_field("label varchar(100) NOT NULL DEFAULT 'default label'");

注意

將原始字符串作為字段傳遞后,不能add_key()在這些字段上進行調(diào)用。

注意

多次調(diào)用add_field()是累積的。

創(chuàng)建一個ID字段

創(chuàng)建ID字段有一個特殊的例外。類型為id的字段將被自動分配為INT(9)auto_incrementing主鍵。

$this->dbforge->add_field('id');// gives id INT(9) NOT NULL AUTO_INCREMENT

添加鍵

一般來說,你會希望你的桌子有鑰匙。這是通過$ this-> dbforge-> add_key('field')完成的。將可選的第二個參數(shù)設置為TRUE將使其成為主鍵。請注意,add_key()后面必須跟調(diào)用create_table()。

多列非主鍵必須作為數(shù)組發(fā)送。下面的示例輸出是針對MySQL的。

$this->dbforge->add_key('blog_id', TRUE);// gives PRIMARY KEY `blog_id` (`blog_id`)
$this->dbforge->add_key('blog_id', TRUE);
$this->dbforge->add_key('site_id', TRUE);// gives PRIMARY KEY `blog_id_site_id` (`blog_id`, `site_id`)
$this->dbforge->add_key('blog_name');// gives KEY `blog_name` (`blog_name`)
$this->dbforge->add_key(array('blog_name', 'blog_label'));// gives KEY `blog_name_blog_label` (`blog_name`, `blog_label`)

創(chuàng)建一個表格

在聲明了字段和鍵后,可以使用創(chuàng)建一個新表

$this->dbforge->create_table('table_name');// gives CREATE TABLE table_name

將可選的第二個參數(shù)設置為TRUE會將“IF NOT EXISTS”子句添加到定義中

$this->dbforge->create_table('table_name', TRUE);// gives CREATE TABLE IF NOT EXISTS table_name

你也可以傳遞可選的表屬性,比如MySQL的ENGINE

$attributes = array('ENGINE' => 'InnoDB');
$this->dbforge->create_table('table_name', FALSE, $attributes);// produces: CREATE TABLE `table_name` (...) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

注意

除非您指定CHARACTER SET和/或COLLATE屬性,create_table()否則將始終使用您配置的char_setdbcollat值添加它們,只要它們不為空(僅限MySQL)。

丟下一張桌子

執(zhí)行DROP TABLE語句并可選擇添加IF EXISTS子句。

// Produces: DROP TABLE table_name$this->dbforge->drop_table('table_name');// Produces: DROP TABLE IF EXISTS table_name
$this->dbforge->drop_table('table_name',TRUE);

重命名表

執(zhí)行TABLE重命名

$this->dbforge->rename_table('old_table_name', 'new_table_name');// gives ALTER TABLE old_table_name RENAME TO new_table_name

修改表格

向表中添加一列

$this->dbforge->add_column()

add_column()方法用于修改現(xiàn)有的表。它接受與上面相同的字段數(shù)組,并且可以用于無限數(shù)量的附加字段。

$fields = array(        'preferences' => array('type' => 'TEXT'));
$this->dbforge->add_column('table_name', $fields);// Executes: ALTER TABLE table_name ADD preferences TEXT

如果您使用的是MySQL或CUBIRD,那么您可以利用它們的AFTER和FIRST子句來定位新列。

例子:

// Will place the new column after the `another_field` column:
$fields = array(        'preferences' => array('type' => 'TEXT', 'after' => 'another_field'));// Will place the new column at the start of the table definition:$fields = array(        'preferences' => array('type' => 'TEXT', 'first' => TRUE));

從表中刪除一列

$this->dbforge->drop_column()

用于從表格中刪除一列。

$this->dbforge->drop_column('table_name', 'column_to_drop');

修改表中的列

$this->dbforge->modify_column()

這種方法的用法add_column()與之相同,只是它改變了現(xiàn)有的列而不是添加新的列。為了更改名稱,您可以在定義數(shù)組的字段中添加一個“名稱”鍵。

$fields = array(        
        'old_name' => array(                
                    'name' => 'new_name',                
                    'type' => 'TEXT',        
                    ),
                );
$this->dbforge->modify_column('table_name', $fields);// gives ALTER TABLE table_name CHANGE old_name new_name TEXT

類參考

class CI_DB_forgeadd_column($table[, $field = array()[, $_after = NULL]])

參數(shù):

$ table(string) - 將列添加到$ field(array)的列名 - 列定義$ _after(string) -  AFTER子句的列(不建議使用)

返回:

成功為TRUE,失敗為FALSE

返回類型:

布爾

  • $ tablestring) - 要添加列的表名

  • $ fieldarray) - 列定義(s)

  • $ _after字符串) -  AFTER子句的列(不建議使用)

返回:成功時為TRUE,失敗時為FALSE
返回類型:布爾值
向表中添加一列。用法:請參閱[將列添加到表](about:blank#將列添加到表)。

add_field($field)

參數(shù):

$ field(array) - 要添加的字段定義

返回:

CI_DB_forge實例(方法鏈接)

返回類型:

CI_DB_forge

  • $ fieldarray) - 要添加的字段定義

返回:CI \ _DB \ _forge實例(方法鏈接)
返回類型:CI \ _DB \ _forge
向?qū)⒂糜趧?chuàng)建表的集添加一個字段。用法:請參閱[添加字段](關于:空白#添加字段)。

add_key($key[, $primary = FALSE])

參數(shù):

$ key(array) - 鍵字段的名稱$ primary(bool) - 如果它應該是主鍵或常規(guī)鍵,則設置為TRUE

返回:

CI_DB_forge實例(方法鏈接)

返回類型:

CI_DB_forge

  • $ key數(shù)組) - 一個關鍵字段的名稱

  • $ primarybool) - 如果它應該是主鍵或常規(guī)鍵,則設置為TRUE

返回:CI \ _DB \ _forge實例(方法鏈接)
返回類型:CI \ _DB \ _forge
向?qū)⒂糜趧?chuàng)建表的集添加一個密鑰。用法:請參閱[添加密鑰](關于:空白#添加密鑰)。

create_database($db_name)

參數(shù):

$ db_name(string) - 要創(chuàng)建的數(shù)據(jù)庫的名稱

返回:

成功為TRUE,失敗為FALSE

返回類型:

布爾

  • $ db_namestring) - 要創(chuàng)建的數(shù)據(jù)庫的名稱

返回:成功時為TRUE,失敗時為FALSE
返回類型:布爾值
創(chuàng)建一個新的數(shù)據(jù)庫。用法:請參閱[創(chuàng)建和刪除數(shù)據(jù)庫](關于:空白#創(chuàng)建和刪除數(shù)據(jù)庫)。

create_table($table[, $if_not_exists = FALSE[, array $attributes = array()]])

參數(shù):

$ table(string) - 要創(chuàng)建的表的名稱$ if_not_exists(string) - 設置為TRUE以添加'IF NOT EXISTS'子句$ attributes(string) - 表屬性的關聯(lián)數(shù)組

返回:

成功為TRUE,失敗為FALSE

返回類型:

布爾

  • $ tablestring) - 要創(chuàng)建的表的名稱

  • $ if_not_existsstring) - 設置為TRUE以添加'IF NOT EXISTS'子句

  • $ attributesstring) - 表格屬性的關聯(lián)數(shù)組

返回:成功時為TRUE,失敗時為FALSE
返回類型:布爾值
創(chuàng)建一個新表。用法:請參閱[創(chuàng)建表格](關于:空白#創(chuàng)建表格)。

drop_column($table, $column_name)

參數(shù):

$ table(string) - 表名$ column_name(array) - 要刪除的列名

返回:

成功為TRUE,失敗為FALSE

返回類型:

布爾

  • $ tablestring) - 表名

  • $ column_namearray) - 要刪除的列名稱

返回:成功時為TRUE,失敗時為FALSE
返回類型:布爾值
從表中刪除一列。用法:請參見[從表中刪除列](about:blank#從表中刪除列)。

drop_database($db_name)

參數(shù):

$ db_name(字符串) - 要刪除的數(shù)據(jù)庫的名稱

返回:

成功為TRUE,失敗為FALSE

返回類型:

布爾

  • $ db_name字符串) - 要刪除的數(shù)據(jù)庫的名稱

返回:成功時為TRUE,失敗時為FALSE
返回類型:布爾值
丟棄數(shù)據(jù)庫。用法:請參閱[創(chuàng)建和刪除數(shù)據(jù)庫](關于:空白#創(chuàng)建和刪除數(shù)據(jù)庫)。

drop_table($table_name[, $if_exists = FALSE])

參數(shù):

$ table(string) - 要刪除的表的名稱$ if_exists(string) - 設置為TRUE以添加'IF EXISTS'子句

返回:

成功為TRUE,失敗為FALSE

返回類型:

布爾

  • $ tablestring) - 要刪除的表的名稱

  • $ if_existsstring) - 設置為TRUE以添加'IF EXISTS'子句

返回:成功時為TRUE,失敗時為FALSE
返回類型:布爾值
丟下一張桌子。用法:請參閱[刪除表](關于:空白#刪除表)。

modify_column($table, $field)

參數(shù):

$ table(string) - 表名$ field(array) - 列定義(s)

返回:

成功為TRUE,失敗為FALSE

返回類型:

布爾

  • $ tablestring) - 表名

  • $ fieldarray) - 列定義(s)

返回:成功時為TRUE,失敗時為FALSE
返回類型:布爾值
修改表格列。用法:請參見[修改表格中的列](about:blank#modify-a-column-in-a-table)。

rename_table($table_name, $new_table_name)

參數(shù):

$ table(string) - 表中的當前值$ new_table_name(string) - 表的新名稱

返回:

成功為TRUE,失敗為FALSE

返回類型:

布爾

  • $ tablestring) - 表中的當前值

  • $ new_table_name字符串) - 表的新名稱

返回:成功時為TRUE,失敗時為FALSE
返回類型:布爾值
重命名表格。用法:請參閱[重命名表](about:blank#renaming-a-table)。
Previous article: Next article: