php mssql 字符串截断,php+MSSQL的坑:(n)varchar型字段被截断

很自虐的搭配php+MSSQL,太多的坑,就不说text型被截断了。

受限于现有的asp+mssql应用,新增的部分功能使用php开发。对一个表的读写,后台使用asp,读写都很正常。前台一个调用是php写的,但就是遇到一个诡异的问题,要对数据做一个很复杂的解析处理,结果是数据丢失一部分。一层一层的输出,最后才发现是从数据库读出来了数据就不完整,这可奇怪了。又不是text型的数据,加了ini_set()修正text型默认长度限制,也不行。

但被截断长度很奇怪,恰恰是254个字节,似乎正好是较老的mssql里varchar()的默认最大长度;而该字段的实际是varchar(1000);

难道是字段类型问题?

于是修改该字段为text型,再执行,全好了,没有一点异常。

看来php+mssql实在是个自虐的搭配,不知道还有多少坑….

不过限于老的程序架构,也是个没办法的,人总是要吃饭的….

[另记: 盘点php+mssql下的坑]

这些坑还是有解决方案的,先留着,以后补充

1 text/ntext型字段长度被截断

2 php下mssql 库不支持ntext类型的数据

3 “varchar(n) 其中n>254 ”类型数据被截断

4 php5.3以后的win32 官方二进制版不支持mssql库

延伸阅读coded by nessus

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值