XYZ's Blog

Follow your heart

php读取access数据库时备注类型字段显示不完整的解决方法

Posted on July 28, 2010 | Posted in 编程开发

无可否认,php+access并不是一个理想的组合,但现在的情况就是逼着我要这么去做,原因是这样的,现在公司——全友卫浴,租了一台服务器,win2003+iis的环境(php的配置糟糕透了,超时没配好,一般的伪静态没配好,还有很多的其他也没配置好……),专门用来放置给经销商的的网站,原本普通的企业网站,asp完全可以胜任的,虽然老是看到、听到有人说asp已经过时了,要淘汰了之类的话,我自己还是那句,没有烂语言,只有烂的程序员。

虽说是asp可以胜任,但上司规定得用php,更糟糕的是他居然不给我远程链接mysql数据库,我无语了,如果用mysql来做的话,到时候如果要添加功能的话就麻烦死了,于是把心一横,决定用php+access来按照上司的要求做一套简单的企业站程序。反复的修改之后基本没出现太大的问题,但有句歌词写得好“问题天天都多”,今天在添加数据的时候发现,添加的新闻如果太长,就会显示不完整 ,开始怀疑是access的问题,打开看看内容字段那里有没有限制字数,结果,并没有发现有限制,又再看看程序,其实都没有看了,在开发的时候压根就没有添加过相应的程序上去,编辑器使用的是fckeditor,会不会是它的问题呢,上网搜索一下有没有限制fckeditor显示字数的配置项,结果并没有搜索到相关的配置项。

能够想到的原因似乎验证过了,都不是问题的所在。那么原因在哪里呢,回到起点,看看到底有多少字段被写入access里边。经过验证之后,发现第一发布的文章,所有内容都被记录到数据库里边,但不能读取完整。

上网搜索一下原因,发现有一条类似的问题,不过原问题是mysql的数据库,心想,会不会access也是这个原因呢,嗯再次搜索,很好,问题的根本原因找到了是php.ini里边的配置有点小问题,马上叫上司到服务器上改一下配置文件。

具体的解决方法是:
php使用odbc连接access数据库备注字段被截断,因为php默认设置长字段超过默认设置4096就会自动截断,
打开php.ini 搜[ODBC] 找到

; Handling of LONG fields.  Returns number of bytes to variables.  0 means
; passthru.
odbc.defaultlrl = 4096

将4096修改一下,适用于你的程序,其中“-1”是无限制。
保存重启服务器就可以了

要注意的是,修改的越大,所占用的内存就越大,本来想按照网上的方法,在后面直接加4个0了事,不料确提示内存不足,哎,真是烂服务器啊,无奈,唯有改小一点……

Sponsor