Category: PHP     Comments    

关于PHP只能读取MsSQL的char/varchar字段前256个字符的问题

很不幸地用PHP操作MsSQL(SQL Server)数据库的时候,如果您的char或者varchar字段长度超过256的话只能读取到前256个字符的内容,后面的会被无情的CUT掉,无论你用最基本的MSSQL DB库还是PDO_MSSQL,或者自己写一个专门的MSSQL DB扩展也无济于事,因为PHP操作MSSQL都是通过微软提供的SQL Server Client Library工作,也就是ntwdblib.dll 这个文件,目前“最新”版本是2000.80.194.0(需要自行去搜索下载),就算最新版本(PHP 5.3 alpha2)的PHP自带的都是这个98年的版本2000.2.8.0,“最新” 版本估计是2000年的产物(根据这个判断© 1988-2000 Microsoft Corp. 保留所有权利。)难怪2001年提交的这个BUG至今还没有被FIX

http://bugs.php.net/bug.php?id=11593

调整php.ini中的 mssql.textlimit 和 mssql.textsize 也没用,这两个参数形同虚设…

鉴于这个库的版本太老,用PHP+MsSQL这种鸡肋组合的同志们要小心了…

解决办法就是使用ODBC驱动,请参考:
在Zend Framework 中使用 PDO_ODBC

Copyright © 2005-2009 kingchan.net, All rights reserved, Wordpress-Theme by Felix Krusch 粤ICP备09019789号