SQL Server, PHP 截断Text 字段

来源:互联网 发布:周其仁 知乎 编辑:程序博客网 时间:2024/06/01 10:00

PHP 可以使用很多数据库系统, 最经常用的是MySQL.  然而, SQL Server 是一个非常强大的,可以替换MySQL 的数据库, 很值得我们在大的项目中考虑使用。


然而, 在PHP中 mssql  的扩展设置很容易被忽略,所以会导致一些奇怪的行为。 我在最近的一个项目中遇到这样一个不常见的问题, 每次从Text 类型的列中获取数据,都会被截断为大约4000个字符


如果你也正经历这样类似的问题, 这里有一些方法可以解决它。


你需要通过PHP增加text 类型列从数据库的最大返回值。 你可以用这样一个简单的sql 查询  

SET TEXTSIZE 2147483647
你可以运行下面的php 脚本(最好是在建立连接后执行)

mssql_query("SET TEXTSIZE 2147483647");

一个比较好的解决这个问题方式是在php.ini 中修改 “textlimit” 和 “textsize” , 像这样

mssql.textlimit = 2147483647mssql.textsize = 2147483647

在上面的例子中, 我用了数值 "2147483647" (字节数), 你是没有必要设置这么高的, 然而这样做也是没有伤害的。


为什么这个问题不会发生在ASP ?  当我们使用Microsoft's SQL Server ODBC driver and OLE DB Provider 时, 当连接建立成功后,textsize 自动被设置成了 2147483647。


原文: https://www.addedbytes.com/blog/sql-server-php-truncating-text 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 酷派手机出现无命令怎么办 华为荣耀4x卡怎么办 华为手机图案解锁忘了怎么办 xp电脑读不起u盘怎么办 在外国玩王者卡怎么办 华为p7忘记解锁密码怎么办 华为荣耀4x存储空间不足怎么办 红米4a内存不够怎么办 华为h60开不了机怎么办 华为荣耀4c内存不足怎么办 华为4c运行内存不足怎么办 华为手机总是显示内存不足怎么办 华为荣耀4x畅玩版内存不足怎么办 三星手机忘了解锁密码怎么办 荣耀8密码忘了怎么办 华为4x开不了机怎么办 华为指纹和密码解锁解不开怎么办 华为荣耀5x死机怎么办 华为荣耀开不了机怎么办 荣耀10开不了机怎么办 乐视pro3变砖了怎么办 手机升级后开不了机怎么办 华为g750开不了机怎么办 手机变砖怎么办插电没反应 变砖手机不通电怎么办 小米手机充电口坏了怎么办 小米2s尾插坏了怎么办 小米手机充电插口坏了怎么办 一条网线上两个亚马逊账号怎么办 加拿大28输20万怎么办 买家账户被亚马逊关闭余额怎么办 京东自营物流慢怎么办 京东退货不给退怎么办 刚付款不想要了怎么办 淘宝卖家拒绝退货退款怎么办 投诉不成立卖家怎么办 淘宝卖家被买家投诉卖假货怎么办 天猫三天未发货怎么办 天猫申请换货卖家不处理怎么办 天猫新疆不发货怎么办 天猫商城少发货怎么办