5
至少這似乎正在發生。我試圖爲一個網站創建一個搜索欄,它確實起作用,除非它沒有閱讀只會撤回批准內容的where子句。你可以看看爲什麼這會成爲一個問題。codeigniter like子句覆蓋where子句
無論如何,這是我在我的模型
$match = $this->input->post('search');
$this->db->where('approved', 'y');
$this->db->like('description', $match);
$this->db->or_like('title', $match);
$this->db->or_like('body', $match);
$this->db->or_like('author', $match);
$query = $this->db->get('story_tbl');
return $query->result();
,當我打印出來的查詢,好像它看到的where子句,但是當我得到的東西回來它拉的東西都是未獲批准或正在接受審查。
這裏是我打印出來的查詢
SELECT * FROM (`story_tbl`) WHERE `approved` = 'y' AND `description` LIKE
'%another%' OR `title` LIKE '%another%' OR `body` LIKE '%another%' OR
`author` LIKE '%another%'
我爲什麼要這些括號?這就是codeigniter如何將它打印到頁面上,而我上面提到的querry仍然忽略了我的第一個where子句。我很困惑爲什麼在活動記錄上使用$ this-> db-> querry會更好? – zazvorniki
由於沒有括號,where子句被忽略。您需要了解AND和OR的工作方式。 – sakibmoon
我明白他們是如何工作的,但是當我粘貼上面的代碼時,它給了我一個500錯誤。即使在我的sql編輯器中輸入上面的查詢語句時,「符號不應該有所作爲」 – zazvorniki