2016-09-09 10 views
1

私はコードイグナイタの方法でクエリを記述しています。しかし、それは動作していないと私はそれをfirebugときに、私のクエリにNULLが追加されました。コードイグナイタWHERE句の後にIS NULLを追加します。

$select_fields = "id,name,created_by,keywords"; 
$where_field = "FIND_IN_SET('$id','keywords')"; 

$this -> db_social -> select($select_fields); 
$this -> db_social -> from('user_collection1'); 
$this -> db_social -> where($where_field); 
$query = $this->db_social->get(); 

エラーは、使用してこの

SELECT `id`, `name`, `created_by`, `keywords` FROM `user_collection1` WHERE FIND_IN_SET('11','keywords') IS NULL 
+0

試してみてください。 'ます$ this-> db_social->(偽ヌル$ where_field、、); [ドキュメント](http://www.codeigniter.com/userguide2/database/active_recordから'(例えば、 .html))。 Btw、あなたのオブジェクトの中に '$ this - > db_social - > ...'のような空白を入れないでください。コードを読むのがはるかに難しくなります。 –

+0

運がない! :( –

+0

'where'節を削除した場合、それは動作しているかどうか? – devpro

答えて

0

SQL関数のようにクエリを示していることFIND_IN_SET(needle, haystack)、この構文を持っています。 2番目の引数は文字列で、指定した文字列は "keywords"です。明らかに文字列 "11"は文字列 "keywords"に含まれていません。

私はdb->where()機能を全く使わないことで必要なものを手に入れられると思います。 これを試してください。

$select = "id,name,created_by,keywords WHERE FIND_IN_SET('$id', keywords)"; 

$this->db_social->select($select); 
//don't need the ->from call since this uses a single table, put that name in ->get 
$query = $this->db_social->get('user_collection1');