codeigniter 生成的更新中的语法错误

Syntax error in update generated by codeigniter

我正在使用 codeigniter,并且有一个 sql 查询。我知道问题出在哪里,但不知道为它编写正确的查询。 我遇到这样的错误,

UPDATE `fx_tasks` 
SET `timer_status` = 'On', `start_time` = 1444629730, `timer_started_by` = '46' 
WHERE `t_id` = '3438' 
ORDER BY `timer_status=On` DESC

我的 codeingiter 查询就像,

$this->db->set('timer_status', $action);
$this->db->set('start_time', time());
$this->db->set('timer_started_by', $this -> user);
$this->db->order_by("timer_status=On","DESC");
$this->db->where('t_id',$task)->update($this->tasks_table);

codeigniter 中的正确查询是什么?

update 语句没有 order by 子句。从您的 codeigniter 代码中删除它:

$this->db->set('timer_status', $action);
$this->db->set('start_time', time());
$this->db->set('timer_started_by', $this -> user);
$this->db->where('t_id',$task)->update($this->tasks_table);
// order by removed

你应该得到一个有效的更新语句:

UPDATE `fx_tasks` 
SET    `timer_status` = 'On',
       `start_time` = 1444629730,
       `timer_started_by` = '46'
WHERE  `t_id` = '3438'

使用Codeigniter Update function

date_default_timezone_set('asia/kolkata')
$user = $this->user;
$data = array(
       'timer_status' => $action,
       'start_time' => date('H:i:s'),
       'timer_started_by' => $user
    );

$this->db->where('t_id', $task);
$this->db->update('fx_tasks', $data);

date('H:i:s') return current time with provide time zone. If you need to print timestamp use date('Y-m-d H:i:s')