0

を使用してこの単純なクエリを実行したい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()

助言がありますか?

4

3 に答える 3

0

最近出くわした元の質問に答えて、これが Google のトップの結果であることがわかりました。

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

= を LIKE や NOT LIKE などの他の演算子に置き換えることもできます。

于 2014-11-04T13:53:42.523 に答える
0

$this->db->get_where($type,array("md5(id)"=>$id));完璧に動作します。欲しかったレコードを手に入れました。

于 2012-12-24T10:56:20.440 に答える
0
$this->db->where('MD5(id)', $id, FALSE);

3 番目の引数を FALSE に設定すると、CI がフィールド名とテーブル名をバッククォートで保護するのを停止するため、コードを次のように変換する代わりに:

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

そうなる:

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