2014-09-22 68 views
1

我正在使用OpenCart創建一個從ERP導入數據的應用程序。 在一些項目的描述中有時使用字符「°」(度)。 有問題的標準軟件的插入的應用使用「mysql_real_escape_string」,接受上述指定的字符。 在我的應用程序中,我使用相同的功能,但該功能僅導入「°」之前的前幾個字符,然後轉到下一個產品。 我試過調試,變量包含rightdescription。 Certenly有一個錯誤,但我不明白在哪裏。 有沒有人有類似的問題,並解決了它? 如何?mysql_real_escape_string和特殊字符

感謝 再見

這是我的代碼

$this->db->query("UPDATE " . DB_PREFIX . "product_description SET name = '" . $this->db->escape($description_it) . "' WHERE product_id = '" . (int)$product_id . "' AND language_id = '2'"); 

,這是Opencart的

public function escape($value) { 
    if ($this->link) { 
     return mysql_real_escape_string($value, $this->link); 
    } 
} 
+0

什麼版本的開放式購物車您使用的是? – 2014-09-22 13:09:11

+0

你應該嘗試'echo'sql字符串...然後使用mysql工具(如命令行或mysql工作臺)來執行它 – 2014-09-22 13:18:35

+0

謝謝Logan Murphy。我用函數utf_encode()「$ this-> db-> escape(utf8_encode($ description_it))」解決了這個問題,因爲我的文本文件是用ASCII編碼的。 – Eugenio 2014-09-22 13:37:32

回答

1

反向則params的功能:

串mysqli_real_escape_string(mysqli的$連接,字符串$ escapestr)

你需要改變你的行:

mysql_real_escape_string($this->link, $value);