該方法根據你提供的數據生成一條 INSERT 語句並執行,它的參數是一個**數組** 或一個**對象**,下面是使用數組的例子:html
$data = array( 'title' => 'My title', 'name' => 'My Name', 'date' => 'My date' ); $this->db->insert('mytable', $data); // Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')
第一個參數爲要插入的表名,第二個參數爲要插入的數據,是個關聯數組。sql
下面是使用對象的例子:數組
/* class Myclass { public $title = 'My Title'; public $content = 'My Content'; public $date = 'My Date'; } */ $object = new Myclass; $this->db->insert('mytable', $object); // Produces: INSERT INTO mytable (title, content, date) VALUES ('My Title', 'My Content', 'My Date')
第一個參數爲要插入的表名,第二個參數爲要插入的數據,是個對象。ide
該方法和 $this->db->insert() 方法同樣根據你提供的數據生成一條 INSERT 語句,可是並不執行。codeigniter
例如:ui
$data = array( 'title' => 'My title', 'name' => 'My Name', 'date' => 'My date' ); $sql = $this->db->set($data)->get_compiled_insert('mytable'); echo $sql; // Produces string: INSERT INTO mytable (`title`, `name`, `date`) VALUES ('My title', 'My name', 'My date')
第二個參數用於設置是否重置查詢(默認狀況下會重置,正如 $this->db->insert() 方法同樣):this
echo $this->db->set('title', 'My Title')->get_compiled_insert('mytable', FALSE); // Produces string: INSERT INTO mytable (`title`) VALUES ('My Title') echo $this->db->set('content', 'My Content')->get_compiled_insert(); // Produces string: INSERT INTO mytable (`title`, `content`) VALUES ('My Title', 'My Content')
上面的例子中,最值得注意的是,第二個查詢並無用到 $this->db->from() 方法, 也沒有爲查詢指定表名參數,可是它生成的 SQL 語句中有 INTO mytable 子句。 這是由於查詢並無被重置(使用 $this->db->insert() 方法會被執行並被重置, 使用 $this->db->reset_query() 方法直接重置)。spa
該方法根據你提供的數據生成一條 INSERT 語句並執行,它的參數是一個**數組** 或一個**對象**,下面是使用數組的例子:code
$data = array( array( 'title' => 'My title', 'name' => 'My Name', 'date' => 'My date' ), array( 'title' => 'Another title', 'name' => 'Another Name', 'date' => 'Another date' ) ); $this->db->insert_batch('mytable', $data); // Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')
第一個參數爲要插入的表名,第二個參數爲要插入的數據,是個二維數組。htm
該方法用於執行一條 REPLACE 語句,REPLACE 語句根據表的**主鍵**和**惟一索引** 來執行,相似於標準的 DELETE + INSERT 。 使用這個方法,你不用再手工去實現 select(),update(),delete() 以及 insert() 這些方法的不一樣組合,爲你節約大量時間 。
例如:
$data = array( 'title' => 'My title', 'name' => 'My Name', 'date' => 'My date' ); $this->db->replace('table', $data);
註解這個方法不支持批量插入。