当前位置: 首页 > 面试题库 >

使用codeigniter的活动记录语法的mysql数据库的增量字段

荀增
2023-03-14
问题内容

我有以下php-codeigniter脚本,该脚本尝试使用活动记录语法来增加记录的字段:

$data = array('votes' => '(votes + 1)');
$this->db->where('id', $post['identifier']);
$this->db->update('users', $data);

这将产生以下SQL:

"UPDATE用户的SET投票= '(votes + 1)' WHERE编号= '44'

哪个不会运行,但是此SQL可以满足我的要求: "UPDATE用户SET投票= (votes + 1) WHEREid = '44'“`<-请注意缺少引号(投票+ 1)

有谁知道如何用codeigniter的活动记录语法实现这种类型的查询?


问题答案:

您可以执行以下操作:

$this->db->where('id', $post['identifier']);
$this->db->set('votes', 'votes+1', FALSE);
$this->db->update('users');

之所以起作用,是因为第三个(可选)FALSE参数告诉CodeIgniter不要用反引号(')保护生成的查询。这意味着生成的SQL将是:

UPDATE users SET votes= votes + 1 WHERE id= '44'

如果您注意到,则从中删除了反引号'(votes+1)',从而产生了将表决属性增加1的预期效果。



 类似资料:
  • 问题内容: 我想在Codeigniter的活动记录中使用mySQL函数NOW()在数据库中插入当前时间。以下查询将不起作用: 这是因为CodeIgniter的ActiveRecord类自动转义输入。 通过调用set()并传递peratmeter FALSE,以下代码可以正常工作,以使它不会逃脱NOW()。 但是,我的问题是,除此之外还有其他方法吗?例如,如果我可以通过只添加数据数组中的所有内容来以

  • 问题内容: 如何使用PHP CodeIgniter框架的活动记录查询格式进行UNION查询? 问题答案: CodeIgniter的ActiveRecord不支持UNION,因此您只需编写查询并使用ActiveRecord的查询方法即可。

  • 本文向大家介绍Mysql数据库增量备份的思路和方法,包括了Mysql数据库增量备份的思路和方法的使用技巧和注意事项,需要的朋友参考一下 MySQL数据库增量备份,在这之前修改我们的数据库配置文件/etc/my.cnf开启bin-log日志功能即可。接下来是我参考了下网上的一些方法,自己写的,主要还是要能学到他的一些思路和方法。 添加计划任务:                        cron

  • 我有一个从外部数据库获取数据的功能,我可以获得特定的电影信息,如id、名称、类型等。现在,如果电影类型是例如动画,我只希望将这一种类型添加到db中。现在我可以使用isset来解决这个问题,但接下来我会为tyresnull设置db条目,我想避免这种情况。解决这个问题的最佳方法是什么?使用foreach循环?

  • 问题内容: MySQL数据库表的记录上限是多少?我想知道自动增量字段。如果我添加数百万条记录会怎样?如何处理这种情况?谢谢! 问题答案: mysql int类型可以做很多行:http : //dev.mysql.com/doc/refman/5.0/en/numeric- types.html 无符号的最大值是 无符号的最大值是

  • firebaseDatabase=firebaseDatabase.getInstandatabaseReference=firebaseDatabase.getReference()Query Query=databaseReference.child(“ticket_detail”).orderbychild(“ticket_no”).limittoLast(1);AddListenerFor