作者:玄天战猫 | 来源:互联网 | 2013-08-13 09:47
在使用PHPPDO读取SqlServer的varchar数据类型时数据丢失,如原有类型数据大小为356,使用PDO读出数据大小为255使用tsql直接查询同样可查看数据大小为(255)
关于PHP读取sql server varchar数据丢失的问题:
现象:
在使用PHP PDO读取SqlServer 的varchar 数据类型时数据丢失,如原有类型数据大小为356, 使用PDO读出数据大小为255
使用tsql 直接查询同样可查看数据大小为(255)
解决办法:
1、修改读数据的方式:
将 SELECT msg_body FROM sms_queue WHERE msg_id =25811131
修改为
SELECT cast(msg_body as text)msg_body FROM sms_queue WHERE msg_id =25811131
cast(msg_body as text)msg_body 实现数据类型转化,将varchar数据类型按照text格式读出
2、将对应的数据类型修改
如:
将varchar(n)改为varchar(max)
3、使用freetds版本8.0版本以上
(注意其默认编码为utf-8)