Codeigniter ActiveRecord更新SQL错误

时间:2012-10-21 20:21:01

标签: sql codeigniter activerecord

我正在研究CI 2.1.3并遇到以下问题。我在这做错了什么?我是否需要做或知道任何阅读或知识。

Codeigniter ActiveReocrd更新语法

$data['spun'] = TRUE;
$this->db->update('registered', $data, 
                  "registered_id = $registration['registered_id']");

我的预期

UPDATE `registered` SET `spun` = 1 WHERE `registered_id` = 1

CI生成的内容

UPDATE `registered` SET `spun` = 1 WHERE `id` = 1

数据库表(括号表示法)

已注册( registered_id ,registered_name,...,spun);

编辑1

我也尝试了以下内容,但CI给出了相同的SQL。

$this->db->update('registered', $data, 
                  array('registered_id' => $registration['registered_id']));

2 个答案:

答案 0 :(得分:1)

我认为解决方案非常简单。你可以这样做:

$data['spun'] = TRUE;
$this->db->update('registered', $data, 
                        array('registered_id' => $registration['registered_id']);

答案 1 :(得分:0)

基于Code Igniter文档:

http://codeigniter.com/user_guide/database/active_record.html#update

你应该使用:

$data['spun'] = TRUE;
$this->db->where('registered_id', $registration['registered_id']);
$this->db->update('registered', $data);