2011-09-21 83 views
0

如何防止codeigniter在我們的查詢中不插入單引號?如何刪除自動插入codeigniter中的單引號?

當我們編寫查詢在笨就會自動插入單引號,像這樣:

$this->db->select('id, ifnull(name,\'\') as name'); 
$this->db->from('table'); 

它創建數據庫錯誤。

+0

它應該是什麼樣子? – Treffynnon

+0

當我們執行它時,它添加了單引號錯誤的地方,即'table'.ifnull('name,'')作爲名稱'這裏單引號需要圍繞函數以及 – Suleman

回答

5
$this->db->select('id, ifnull("name",\'\') as name', false); 
$this->db->from('table'); 

是你在追求什麼。引號是逃避停止sql注入,一定不要混合來自用戶的unsanitized輸入。

我想我還應該注意,使用這個false參數將停止雙引號封裝,如果您使用的是postgres,您可能需要封裝任何用作列名稱的關鍵字。 (見name"name"之差)

Active Record - Selecting Data

+0

我懷疑OP試圖通過構建SQL語句傳遞一些SQL代碼並期望他們更改語句。 – Tomalak

+0

是的,我認爲這是可悲的,它是解決一些疑問的唯一方法。 – Louis

+0

在MySql中,「name」返回與「name」相同的值 – Suleman