diy66 发表于 2013-2-26 16:42:28

求一active record语句

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




mark35 发表于 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')

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

mark35 发表于 2013-2-26 16:48:16

其实直接查询更简单
$id = (int) $id;
$this->db->query("UPDATE my_blog SET likes=likes+1 WHERE id='$id' ");

diy66 发表于 2013-2-26 17:58:26

mark35 发表于 2013-2-26 16:47 static/image/common/back.gif
http://codeigniter.org.cn/user_guide/database/active_record.html

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


谢谢搞定

kevin11 发表于 2013-2-27 09:00:09

mark35 正解

曜日晨阳 发表于 2013-2-27 11:30:22

$this->db->set('like', 'like+1', FALSE)->update('my_blog')
页: [1]
查看完整版本: 求一active record语句