OpenCart解读(三)控制器product.php的一个BUG

上一篇 / 下一篇  2007-10-06 11:24:16 / 个人分类:OpenCart

试用的时候,发现OpenCart对中文支持不是很好,在后台录入商品信息时,保存后出现乱码,打开PHPMyAdmin一看表里存放的内容就是乱码,很奇怪这个问题,OpenCart设计时强调代码数据库都使用utf8,那为什么会出现乱码呢?依旧使用ZFDemo_log,在/admin/controller/product.php中插入如下调试代码(红色部分):

$name = $request->get('name', 'post');

$descrīption = $request->get('descrīption', 'post');

foreach ($request->get('name', 'post', array()) as $key => $value) {

  $sql = "insert into product_descrīption set product_id = '?', language_id = '?', name = '?', descrīption = '?'";   ZFDemo_Log::log('admin_controller_product.php(line 51)->$parse = ' . print_r($database->parse($sql, $insert_id, $key, $name[$key], $descrīption[$key]), true));

运行后台管理系统,在log.txt捕捉到如下输出: 

03:10:19 admin_controller_product.php(line 51)->$parse = insert into product_descrīption set product_id = '12', language_id = '1', name = 'test', descrīption = '

test

' 03:10:19 admin_controller_product.php(line 51)->$parse = insert into product_descrīption set product_id = '12', language_id = '2', name = '测试', descrīption = '

测试

' }

 似乎没有什么问题,但为什么会在MYSQL的product_descrīption中出现乱码呢?在PHPMyAdmin中把上面的第二句INSERT语句直接运行,果然没有问题,那说明在OpenCart进行插入操作时有什么情况和我在使用PHPMyAdmin时不一样,再次分析源代码看到第24行这么一句:

 mysql_query("set character set utf8");

这是一句将字符集定义为utf8的SQL语句,该不会是它造成乱码吧?为了测试,就在PHPMyAdmin中测试如下语句:

set character set utf8";

insert into product_descrīption set product_id = '12', language_id = '2', name = '测试', descrīption = '测试';

结果是什么?果然出现了乱码! 这句语句有什么问题?MYSQL执行上述语句出现乱码倒底是不是一个BUG?现在还不知道,把admin/controller/pruduct.php 的24行注释掉,功能恢复正常。

(未完待续)


TAG: BUG OpenCart

引用 删除 Beata   /   2007-11-02 17:20:03
哈哈!最近也在研究 OpenCart,不小心就找到你这来了!

看到你写的这边特别浮上来回报一下:

中文乱码问题我没有遇到
我也是 UTF-8 的爱用者,所以自己的 my.cnf 直接调整成只要建立 database 自动设为 UTF8 环境

my.cnf 之 [mysqld] Section 的相关设定

default-character-set   = utf8
default-collation       = utf8_general_ci
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

数据统计

  • 访问量: 16931
  • 日志数: 87
  • 建立时间: 2007-09-29
  • 更新时间: 2008-04-15

RSS订阅

Open Toolbar