更新id不等于当前id的所有记录

时间:2013-01-18 09:13:36

标签: codeigniter

$id = $this->db->query("SELECT LAST_INSERT_ID() AS ID")->row();
$w = $this->db->query("UPDATE bet_type_default SET current = 0 WHERE id <> ".$id."  ");

错误输出是:

  

遇到PHP错误

     

严重程度:4096

     

消息:类stdClass的对象无法转换为字符串

     

文件名:models / model_name.php

     

行号:29发生数据库错误

     

错误号码:1064

     

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近''第1行

     

更新bet_type_default SET current = 0 WHERE id&lt;&gt;

     

文件名:C:\ wamp \ www \ testing \ system \ database \ DB_driver.php

     

行号:330

2 个答案:

答案 0 :(得分:3)

尝试:

$row = $this->db->query("SELECT LAST_INSERT_ID() AS ID ")->row_array();

$w = $this->db->query(
             "UPDATE bet_type_default SET current = 0 WHERE id <> ".$row['ID']
     );

相反,您应该使用活动记录模式:

$id = $this->db->insert_id();
$this->db->where('id <> ', $id)
         ->update('bet_type_default' , array('current'=>0));

答案 1 :(得分:2)

试试这个 -

$id = $this->db->insert_id();
$w = $this->db->query("UPDATE bet_type_default SET current = 0 WHERE id <> $id");