CI 数据库模型操作更新函数
##数据库函数
###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
-
PHP 扫描微信公众号二维码,关注并自动登录网站
2020-10-27 16:35
-
fastadmin git 安装过程记录笔记
2020-10-03 17:34
-
PHP 多个redis key 删除遇到Function R...
2020-08-19 16:01
-
PHP-Redis,keys()对键名进行模糊查询
2020-08-19 15:34
-
php连接redis
2019-12-16 10:00
-
linux mshowfat命令显示MS-DOS文件在FAT...
2019-09-05 08:02
-
PHP中重定向网页跳转页面的方法
2019-07-09 11:38
-
CI框架中使用join实现多表联合查询
2019-06-13 20:56
-
Laravel 5.3 学习笔记之错误日志
2019-06-13 20:56
-
PHP批量生成静态HTML的简单原理和方法
2019-06-13 20:55
网友留言评论