将以下MySQL查询转换为Codeigniter等效项

时间:2016-01-03 18:55:39

标签: php mysql database codeigniter codeigniter-3

我对CodeIgniter很新,我在将MySQL查询转换为CodeIgniter时遇到了一些问题。我想在另一个关系表上用条件更新一个表中的记录。

以下是我的MySQL查询

UPDATE `user` SET `securitytoken` = '71b9b5bc1094ee6eaeae8253e787d654'
WHERE `profileid` IN (SELECT pid FROM `profile` WHERE `email` = 'username@mail.com')    

这在phpMyAdmin中工作正常,但我希望将其转换为codeigniter更新查询。任何人都可以帮我转换。

我在本地WAMP服务器中使用CI v3.0.3。

先谢谢

3 个答案:

答案 0 :(得分:0)

我要做的是使用

编写查询代码
$query = $this->db->query('YOUR QUERY HERE');

并使用转义功能来处理您的一个或两个输入值。

注意查询绑定,在您的情况下可能很有用。

请参阅:http://www.codeigniter.com/user_guide/database/queries.html

我不会尝试使用Active Records,你的SQL有点过于复杂。

答案 1 :(得分:0)

试试这个

$query = $this->db->query("UPDATE `user` SET `securitytoken` = '71b9b5bc1094ee6eaeae8253e787d654'
WHERE `profileid` IN (SELECT pid FROM `profile` WHERE `email` = 'username@mail.com')");
$result = $query->result_array();
return $result;

答案 2 :(得分:0)

$query=$this->db->query("SELECT pid FROM `profile` WHERE `email` = 'username@mail.com'")->row_array();

$this->db->set(`securitytoken`,'71b9b5bc1094ee6eaeae8253e787d654');
$this->db->where_in(`profileid`,$query['pid']);
$this->db->update('user');

//echo $this->db->last_query();
//exit;

试试这个......!