【发布时间】:2015-07-23 16:58:33
【问题描述】:
设置
我正在使用多个内存表来缓存我的网站的数据。这是我的 mac 上的本地 web 主机和 linux 上的开发服务器,使用 php 5.5 上的 mssql php 库
简化的表格如下所示:
CacheID INT NOT NULL
CacheData VARCHAR(MAX)
我偶尔会插入几个大值。 10,000 多个字符。插入工作正常。一个简单的查询告诉我所有数据都在该字段中:
SELECT
CacheID,
LEN(CacheData)
FROM Caches
问题
但是,当我实际选择数据时,cache 列总是被截断为 8192 个字符,从而导致问题。简单选择:
SELECT
CacheData
FROM Caches
WHERE CacheID = 10
我检查了 varchar(max) 字符限制。而且远远超过 8192。2^32 - 1
问题
为什么数据会被截断?
另一种形式的问题。我实际上遇到了这个 agian 并忘记了这个解决方案。因为我忘记了根本原因,所以花了我一点时间来记住。以下是我认为 SQL Server 是罪魁祸首的搜索结果。
什么是 SQL Server 的 Varchar(MAX) 最大长度? - 如果您的值被截断,它可能是由 php 非 sql server 引起的。如果你只是想知道最大值是多少,问题在这里得到解答:Maximum size of a varchar(max) variable
【问题讨论】:
标签: php sql-server varchar