2012-11-27 44 views
4

我插入到帶有單引號的列中。由於$this->db->query已經處理所有特殊字符。但我的問題是我插入數據,如ganesh的插入發生時,只插入ganesh;單引號後的數據丟失。所以,我開始使用$this->db->escape但是這會增加單引號我的數據不要求如何防止這種情況

我的代碼

$sql="insert into tablename (list_name,list_address) values(?,?)" 
$res=this->db-query($sql,array($name,$add)); 

我的錯誤是在前端。不是後端。我將刪除該問題。

+3

[你有什麼嘗試?](http://www.whathaveyoutried.com/) –

+0

我試過使用where_not_in哪裏(不存在())都沒有執行..也我嘗試了一個建議使用null,false在哪裏最後..即使這沒有奏效! –

+0

我向第一個表格添加了一個字段作爲標誌。所以當我插入到第二張桌子時,我更新了旗幟。這解決了我的問題,避免了複雜的查詢! –

回答

5

在複雜的查詢,我發現很容易只發送原始查詢像這樣的情況:

$query = "your query"; 
$result = $this->db->query($query); 

不要忘了將它們插入到這樣的查詢之前轉義變量:

$var = $this->db->escape($var); 
2

如果要用單引號保存數據,則需要在將數據保存到數據庫之前添加斜線,如下所示:

$sql="insert into tablename (list_name,list_address) values(?,?)"; 
$res=this->db-query($sql,array(addslashes($name), $add)); 

然後將其保存到數據庫中,在完成此操作後,在將數據輸出到瀏覽器之前,您很可能需要使用stripslashes()從數據中刪除斜槓。

+0

我試過你的答案,但它不起作用。它將它保存爲ganesh –

+0

@ganeshrj在你的問題中,你可以發佈你使用的實際代碼嗎? – PhearOfRayne

+0

$ name = addslashes($ name); $ res = this-> db-query($ sql,array($ name,$ add));' ($ sql =「insert into tablename(list_name, 這是正確的用法我在做什麼? –

相關問題