CI 数据库模型操作更新函数

摘要: ##数据库函数###4. 更新1.$this->db->replace() REPLACE 语句根据表的主键和唯一索引来执行,类似于标准的 DELETE + INSERT

##数据库函数
###4. 更新
1.$this->db->replace() 
 REPLACE 语句根据表的主键和唯一索引来执行,类似于标准的 DELETE + INSERT

 $data = array(
    'title' => 'My title',
    'name'  => 'My Name',
    'date'  => 'My date');$this->db->replace('table', $data);// REPLACE INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')

2.$this->db->set() 设置新增或更新的数据
 该方法可以取代直接传递数据数组到 insert 或 update 方法
 set() 方法也接受可选的第三个参数($escape),如果设置为 FALSE,数据将不会自动转义

$this->db->set('name', $name);$this->db->insert('mytable');  // INSERT INTO mytable (`name`) VALUES ('{$name}')$this->db->set('name', $name);$this->db->set('title', $title);$this->db->set('status', $status);$this->db->insert('mytable');$this->db->set('field', 'field+1', FALSE);$this->db->where('id', 2);$this->db->update('mytable'); // UPDATE mytable SET field = field+1 WHERE id = 2$this->db->set('field', 'field+1');$this->db->where('id', 2);$this->db->update('mytable'); // UPDATE `mytable` SET `field` = 'field+1' WHERE `id` = 2$array = array(
    'name' => $name,
    'title' => $title,
    'status' => $status);$this->db->set($array);$this->db->insert('mytable');class Myclass {
    public $title = 'My Title';
    public $content = 'My Content';
    public $date = 'My Date';}$object = new Myclass;$this->db->set($object);$this->db->insert('mytable');

3.$this->db->update()

$data = array(
    'title' => $title,
    'name' => $name,
    'date' => $date);$this->db->where('id', $id);$this->db->update('mytable', $data);//UPDATE mytable
SET title = '{$title}', name = '{$name}', date = '{$date}'WHERE id = $id


class Myclass {
    public $title = 'My Title';
    public $content = 'My Content';
    public $date = 'My Date';}$object = new Myclass;$this->db->where('id', $id);$this->db->update('mytable', $object);//UPDATE `mytable`
SET `title` = '{$title}', `name` = '{$name}', `date` = '{$date}'WHERE id = `$id`

$this->db->update('mytable', $data, "id = 4");$this->db->update('mytable', $data, array('id' => $id));

4.$this->db->update_batch()

$data = array(
   array(
      'title' => 'My title' ,
      'name' => 'My Name 2' ,
      'date' => 'My date 2'
   ),
   array(
      'title' => 'Another title' ,
      'name' => 'Another Name 2' ,
      'date' => 'Another date 2'
   ));$this->db->update_batch('mytable', $data, 'title');UPDATE `mytable` 
SET 
`name` = CASE
WHEN `title` = 'My title' THEN 'My Name 2'WHEN `title` = 'Another title' THEN 'Another Name 2'ELSE `name` END,`date` = CASE
WHEN `title` = 'My title' THEN 'My date 2'WHEN `title` = 'Another title' THEN 'Another date 2'ELSE `date` END
WHERE `title` IN ('My title','Another title')

5.$this->db->get_compiled_update()
6.$this->db->update_string() 返回一个正确格式化的 UPDATE 语句
 第一个参数是表名
 第二个参数是一个关联数组,表示待更新的数据
 第三个参数 是个 WHERE 子句
 所有的值自动被转义,生成安全的查询语句

$data = array('name' => $name, 'email' => $email, 'url' => $url);$where = "author_id = 1 AND status = 'active'";$str = $this->db->update_string('table_name', $data, $where);UPDATE table_name 
SET name = 'Rick', email = 'rick@example.com', url = 'example.com' WHERE author_id = 1 AND status = 'active'


本文由 帝一博客 原创发布。用户在本站发布的原创内容(包括但不仅限于回答、文章和评论),著作权均归用户本人所有。独家文章转载,请联系邮箱:17762131@qq.com。获得授权后,须注明本文地址: https://bubukou.com/phpjiqiao/1099.html

网友留言评论

0条评论