get_where with md5()

时间:2012-12-24 10:30:23

标签: php codeigniter codeigniter-2

我想使用Codeigniter执行此简单查询:

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

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

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

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

$this->db->where('MD5(id)', $id, FALSE);

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

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

它将是:

WHERE MD5(id) = 'THE ID'

答案 1 :(得分:0)

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

答案 2 :(得分:0)

回答我最近遇到的原始问题,并将此视为Google的最佳结果。

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

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