2014-09-22 160 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);