用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2263|回复: 5
收起左侧

求一active record语句

[复制链接]
发表于 2013-2-26 16:42:28 | 显示全部楼层 |阅读模式
PHP复制代码
UPDATE my_blog SET likes=likes+1 WHERE id='$id'
复制代码

上面这句话,如果用active record类中的update去写的话,如何写??
主要是 likes=likes+1不知道如何表达(active record类中)
谢谢了。




发表于 2013-2-26 16:47:03 | 显示全部楼层
http://codeigniter.org.cn/user_guide/database/active_record.html

UPDATE 小节。要点在上面的set那儿
set() 也接受可选的第三个参数($escape),如果此参数被设置为 FALSE,就可以阻止数据被转义。为了说明这种差异,这里将对 包含转义参数 和 不包含转义参数 这两种情况的 set() 函数做一个说明。

$this->db->set('field', 'field+1', FALSE);
$this->db->insert('mytable');
// 得到 INSERT INTO mytable (field) VALUES (field+1)

$this->db->set('field', 'field+1');
$this->db->insert('mytable');
// 得到 INSERT INTO mytable (field) VALUES ('field+1')

你也可以将一个关联数组传递给本函数:

发表于 2013-2-26 16:48:16 | 显示全部楼层
其实直接查询更简单

  1. $id = (int) $id;
  2. $this->db->query("UPDATE my_blog SET likes=likes+1 WHERE id='$id' ");
复制代码
 楼主| 发表于 2013-2-26 17:58:26 | 显示全部楼层
mark35 发表于 2013-2-26 16:47
http://codeigniter.org.cn/user_guide/database/active_record.html

UPDATE 小节。要点在上面的set那儿

谢谢搞定
发表于 2013-2-27 09:00:09 | 显示全部楼层
mark35 正解
发表于 2013-2-27 11:30:22 | 显示全部楼层
$this->db->set('like', 'like+1', FALSE)->update('my_blog')

本版积分规则