CodeIgniter/PHP Active Record 不会增加整数
Posted
技术标签:
【中文标题】CodeIgniter/PHP Active Record 不会增加整数【英文标题】:CodeIgniter/PHP Active Record won't increment an integer 【发布时间】:2011-04-08 11:13:16 【问题描述】:这是我在 CodeIgniter 的 Active Record 中的查询:
function calculate_invites($userid)
$this->db->where('id', $userid)
->update('users', array('invites' => 'invites-1', 'sentinvites' => 'sentinvites+1'), FALSE);
invites
和 sentinvites
字段都是整数,但在函数运行后设置为 0。这让我认为 CodeIgniter 将 invites-1
和 sentinvites+1
作为字符串传递,但我认为在末尾附加 FALSE
会阻止它这样做?
谢谢!
杰克
【问题讨论】:
因为 Ci-Active Record 的工作方式与我期望的 AC 工作方式几乎不同...这里是 ci-user-guide 推荐 active_record 【参考方案1】:这不适用于update
,仅适用于set
。
这应该可行:
$this->db->where('id', $userid);
$this->db->set('invites', 'invites-1', FALSE);
$this->db->set('sentinvites', 'sentinvites+1', FALSE);
$this->db->update('users');
这也可能有效(user guide 有点不清楚):
$this->db->where('id', $userid);
$this->db->set(array('invites' => 'invites-1', 'sentinvites' => 'sentinvites+1'), FALSE);
$this->db->update('users');
【讨论】:
以上是关于CodeIgniter/PHP Active Record 不会增加整数的主要内容,如果未能解决你的问题,请参考以下文章
SYSTEMPATH/CodeIgniter.php 在第 219 行
Codeigniter 3 会话不适用于 PHP 7.1.4