0

我想使用以下方法执行这个简单的查询Codeigniter

$user = $this->db->get_where($type,array("id"=>$id));

$type是表的名称, $id是一个md5()值,所以我想做这样$this->db->get_where($type,array(md5("id")=>$id));的事情当然是不可能的。

答案可能是$this->db->query('select * from $type where MD5(id) = $id');,但我更喜欢更紧凑的方式get_where()来执行查询。

有什么建议么?

4

3 回答 3

0

$this->db->get_where($type,array("md5(id)"=>$id));完美运行。我得到了我想要的记录。

于 2012-12-24T10:56:20.440 回答
0

回答我最近遇到的原始问题,发现这是谷歌的最高结果。

$user = $this->db->get_where( $type, array( 'md5( id ) =' => $id ) );

您还可以将 = 替换为其他运算符,例如 LIKE 和 NOT LIKE。

于 2014-11-04T13:53:42.523 回答
0
$this->db->where('MD5(id)', $id, FALSE);

设置为 FALSE 的第三个参数将阻止 CI 使用反引号保护您的字段和表名称,而不是将代码转换为:

WHERE `MD5(id)` = 'THE ID'

这将是:

WHERE MD5(id) = 'THE ID'
于 2012-12-24T10:50:29.987 回答