被php gzfile()函数耍了

2006年1月19日星期四 22:57, bob, 技术随笔, 评论(3), 阅读(11809)
| |
今天在修改数据库备份和导出部分时,遇到了怪事一桩。确认程序无误的情况下,导入怎么也不成功,MySQL报错为“Column count doesn't match”。查了半天也不知道原因,只好让程序一行行地检查备份数据。结果发现,问题出在某一篇很长的日志上。这篇日志的数据被php的gzfile()函数断为两行,难怪SQL语句会出错。
为了确认这是我的rpwt还是php的问题,到php.net上一看,果然有人反应了类似的问题:
引用自 http://cn.php.net/manual/en/function.gzfile.php
In PHP4.4.1 I noticed that gzfile only reads up to 8190 bytes per line. I had a 20K SQL query that was cut into 3 parts - and wondered why the SQL server complained.

Reading an uncompressed file with the file() command works as expected.


好吧,承认被这个东西打败了。这个问题看来不只是4.4.1的问题,我在本机测试时php版本为5.0,也没有解决这个问题。看来现在暂时的解决方法是,大家在备份的时候不要选‘gz’格式,直接备份为bak文件。或者备份成gz文件,在导入之前手动解压成bak文件上传。

提示您的是备份和导入部分已经修改过,尽可能减少了发生错误的概率。请您到这个帖子下载新的程序:
http://www.bmforum.com/bmb/topic.php?filename=110752
sandycs
2006年1月21日星期六 19:59
大哥,能否抽空改一个access版本呢
。。
等了好久了
bob 回复于 2006年1月21日星期六 21:25
access需要花我很多的时间去研究,所以等稳定版出了才会去考虑的。
steven Homepage
2006年1月20日星期五 11:38
我这样做数据备份可以吧!?
http://www.couke.com/weblog/read.php/33.htm
ndren
2006年1月20日星期五 08:22
哈哈哈,非常感谢开发者的提醒哟。  
分页: 1/1 第一页 1 最后页


Powered by Bo-Blog 2.1.1 RC1Code detection by Bug.Center.Team
沪ICP备05032643号

© 2008 博睿智 Marshal Design Bo-blog offcial theme