问题是如下。当我通过PHP从特定字段检索数据时,它被修剪为255个字符。尽管它在DB中的时间更长。
$query_Result = mssql_query("SELECT comment FROM commments WHERE id = 200");
$query_Data = mssql_fetch_assoc($query_Result);
echo strlen($query_Data['comment']);
故事如下。数据库是在我之前创建的,并且评论的长度为'场很短(甚至可能是255个字符)。我扩展了它:
ALTER TABLE commments
ALTER COLUMN comment VARCHAR(1000) NULL
我应该做别的吗?该值通常存储 - 全长。但输出缩短为255个字符。
答案 0 :(得分:3)
如果您提取的varchar
字段大于255 letters
,则结果将在255 letters
处被截断。要防止这种情况,您必须在select子句中为此字段执行CONVERT(TEXT,data_field)
。
所以你的代码本质上应该是
$query_Result = mssql_query("SELECT CONVERT(TEXT,comment) FROM commments WHERE id = 200");
$query_Data = mssql_fetch_assoc($query_Result);
echo strlen($query_Data['comment']);
答案 1 :(得分:0)
在Mysql 5.0.3之前,Varchar数据类型可以存储255个字符,但是从5.0.3开始可以存储65,535个字符。但它的最大行大小限制为65,535字节。这意味着包括所有列不得超过65,535字节。检查你的Mysql版本并使用TINYTEXT,TEXT,MEDIUMTEXT和LONGTEXT来存储大型文本