我想使用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()
这样更紧凑的方式来执行查询。
有什么建议吗?
答案 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。