[英]query “select for update” in codeigniter
我有查询= SELECT @condi:=id FROM table WHERE id>1 LIMIT 1 for UPDATE; UPDATE table set aa="ok" WHERE id=@condi
SELECT @condi:=id FROM table WHERE id>1 LIMIT 1 for UPDATE; UPDATE table set aa="ok" WHERE id=@condi
我使用了$this->db->query(query)
但是codeigniter info错误“你的SQL语法有错误;请查看与你的MySQL服务器版本相对应的手册,以便在'update table set aa =附近使用正确的语法“ok”,其中id = @ condi'在第1行“Miss”;“ 我使用phpmyadmin执行此查询,它的结果行正确而不是错误查询
也许核心codeigniter错误你能帮我在codeigniter中执行我的查询,谢谢
您可以尝试使用查询构建器来防止SQL错误:
$query = $this->db->select()
->from('table')
->where('id >', 1)
->limit(1)
->get_compiled_select();
$data = $this->db->query("{$query} FOR UPDATE")->row_array();
$this->db->where('id', $condi)->update('table', ['aa'=>'ok']);
因为Codeigniter 3构建器不支持FOR UPDATE
,所以我只使用编译器来重建查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.