2013-02-01 114 views
5

Mysql codeigniter查詢無法正常工作。如果MySQL表看起來像這樣 假設:Codeigniter mysql不等於查詢

user_id|user_name 
     1|john 
     2|alex 
     3|sam 

這裏USER_NAME是唯一

下面的查詢將返回如果USER_NAME =約翰USER_ID = 1真正如果說user_name =約翰user_id = 2

$this->db->get_where('user', array('user_name' => $name,'user_id !=' => $userid)); 

但它在殼體USER_NAME =約翰USER_ID = 1返回

任何人都可以建議我一種替代的查詢方式不等於。

打印($這個 - > DB-> last_query())給出:

SELECT * FROM(用戶)其中user = '約翰' AND user_id說明= '1'

+0

你有任何額外的用戶的名字約翰?這也將恢復真實。 – sgeddes

+0

沒有用戶名是唯一的 – Avinash

+1

試試這個,並檢查執行了什麼查詢 print「SQL Query:」。$ this-> db-> last_query(); –

回答

4

你爲什麼不使用!簡單$this->db->query('your query');

+0

似乎是唯一的辦法。 – Avinash

+0

我建議你使用預先解析和編譯的過程,並使用$ this-> db-> query('call yourprocedure('your parms')'); – rohitarora

1

你也可以去follwoing的方式。它爲我工作

$total = 5; 
$CI = get_instance(); 
$CI->load->database(); 
$CI->db->order_by('id','asc'); 
$topusers = $CI->db->get_where('users',array('user_type != 1 && `status` =' => 1),$total,0); 
echo $CI ->db ->last_query(); 
die; 

,如果仍然不適合你可以@rohit去提示函數:$ this-> DB->查詢(「查詢」);

1

只要試試這個

$this -> db -> where('invitee_phone !=', $user_phone); 
0

類型1:

使用->where("column_name !=",$columnname)是罰款一列。

但是,如果你想檢查多列,你必須形成陣列裏面其中條款。

像這樣

$whereArray = array(
       "employee_name" => $name, 
       "employee_id !=" => $id, 
     ); 

$this->db->select('*')->from('employee')->where($whereArray); 

類型2:

我們可以只寫正是我們想要裏面的位置。

$thi->db->where(("employee_id =1 AND employee name != 'Gopi') OR designation_name='[email protected] clan'"); 

2型是很好的相結合的查詢工作,我的意思是paranthesis 「()」

0

你可以按照下面的代碼:

$query = $this->db->select('*')->from('employee')->where('user_name', $name)->where('user_id !=', $userid)->get(); 
$last_query = $this->db->last_query(); 
$result = $query->result_array(); 

如果你傳遞$ name ='john'和$ userid ='1',那麼它返回空數組。