请教大家几个PHP和MYSQL的问题,来者有分!

jswxaccp 2006-06-09 10:19:03
最近客户有个PHP的信息系统要我们来修改,碰到几个问题特来请教大家!


客户运行环境和我们开发环境的比较:
===================
客户:PHP4 + MYSQL4 + LINUX + APACHE
我们:PHP5 + MYSQL5 + WINDOWS XP(SP1) + APACHE

问题:
===================
1.乱码问题

将客户的数据库生成文件在我们MYSQL5里运行后将初始化一部分数据,表的charset是GBK,而页面

charset 是 GB2312
>>>启动服务运行,页面中文显示?????????乱码(只有从数据库里查出来的中文才显示乱码,静态的中文

能正常显示)

2.页面显示Call to underfined function mb_substr() in d:\dep.php on line 614 行 错误
查看源代码,dep.php中mb_substr()如下:

$temp=mysql_fetch_array($result,MYSQL_ASSOC);

mb_substr($temp[id_zt],0,2);
客户用的是PHP4,我们用的PHP5这个函数在版本上有没有什么区别?听说PHP版本是向下兼容的。
...全文
243 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gdj 2006-06-10
  • 打赏
  • 举报
回复
SET NAMES 设置了 3 个会话变量 character_set_client , character_set_connection 和 character_set_results 为给定的字符集。默认的映射关系可以使用值 DEFAULT 来重新设定。
jswxaccp 2006-06-10
  • 打赏
  • 举报
回复
感谢各位大侠的帮助,尤其是“Gdj(陈水.智商只有129.非卖品)”!乱码问题已经全部解决!

还有个小问题,顺便问问大家:
set charset gbk 和 set names gbk 有什么区别?

为什么我取出记录的时候用set charset gbk中文在页面上能正常显示,而我保存中文到数据库中的时候却是乱码,但我改成set names gbk却又是正确的?

当然这个问题不管回不回答,马上揭帖!
MichaelGates 2006-06-10
  • 打赏
  • 举报
回复
up
「已注销」 2006-06-09
  • 打赏
  • 举报
回复
通杀 反正不差那点空间~~`
「已注销」 2006-06-09
  • 打赏
  • 举报
回复
set names utf8
Gdj 2006-06-09
  • 打赏
  • 举报
回复
没别的办法……只能把前台改成gbk
Gdj 2006-06-09
  • 打赏
  • 举报
回复
我觉得是不是你们导出导入数据的过程中操作有误才造成的乱码?
Gdj 2006-06-09
  • 打赏
  • 举报
回复
gb2312应该是gbk的一个子集。我觉得他们应该通用的才对?
xuzuning 2006-06-09
  • 打赏
  • 举报
回复
不要改变用户系统的数据库设置。否则即使在你那里把问题解决了,回到用户时同样出错!
jswxaccp 2006-06-09
  • 打赏
  • 举报
回复
to niohe()
我试了,不行啊!
niohe 2006-06-09
  • 打赏
  • 举报
回复
SET NAMES GB2312 在查询数据库的时候加上这句看看!
jswxaccp 2006-06-09
  • 打赏
  • 举报
回复
to Gdj(陈水.智商只有129.非卖品) :
按照你的方法第二个问题解决了 ,谢谢!

第一个问题我还是不会改,再次请教!

小弟是写JAVA和.NET的,由于公司突然来了个PHP的项目,我就临时学习了下PHP,总共接触还不到一个星期的时间,所以有些问题对大家来说很简单可能问的比较幼稚,希望大家不要见笑哦~~,再次感谢!
Gdj 2006-06-09
  • 打赏
  • 举报
回复
在php.ini里。找到这句
;extension=php_mbstring.dll
把前面的;号去掉,重启apache。
jswxaccp 2006-06-09
  • 打赏
  • 举报
回复
mb_string多字节处理函数库怎么加啊?是在pecl-5.1.4-Win32的扩展包里吗?
fronm 2006-06-09
  • 打赏
  • 举报
回复
o
「已注销」 2006-06-09
  • 打赏
  • 举报
回复
乱码问题你自己都说出了原因,那么改就是了。。。

第二个问题是你的开发环境没有mb_string多字节处理函数库。加就是了。。。。
Gdj 2006-06-09
  • 打赏
  • 举报
回复
第一个问题看置顶的mysql乱码专用帖。
第二个问题给php加载mbstring扩展库。
jswxaccp 2006-06-09
  • 打赏
  • 举报
回复
to Gdj(陈水.智商只有129.非卖品):

非常感谢你的关注,也非常感谢你的回答!

我的前台使用的是GB2312,如果有部分gbk里的字符gb2312并不包含,怎么才能让它在IE里正常显示呢?
wangyaozh 2006-06-09
  • 打赏
  • 举报
回复
不太明白
Gdj 2006-06-09
  • 打赏
  • 举报
回复
set names gbk
set charset gbk

这两句都是可以的。有些页面不行大概是因为你前台页台使用的是gb2312吧。他只是gbk的一个子集。也就是说有部分gbk里的字符gb2312并不包含。所以使用到这部分字符的就出乱码了。
加载更多回复(4)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧