首页 > 建站教程 > PHP教程 >  String data,right truncated:1406 Data too long for column 'c正文

String data,right truncated:1406 Data too long for column 'c

我爱模板网在使用php做网站时,有个添加文章内容的功能。使用的MySQL数据库。内容使用的是text类型。当保存添加的文章时,提示了下面的错误:
String data,right truncated:1406 Data too long for column 'content' at row 1

一看就明白,这个content内容字段,内容太长了,无法保存。

下面是各种类型对应的文本内容长度:

php

以上的错误提示可能是超出了类型的长度,可以换种类型试试,如mediumtext。

如果还是不行,那可能是Mysql根据配置文件限制Server接受数据包大小,有时候大的插入和更新会受max_allowed_packet参数限制,导致写入或者更新失败。

在命令行输入下面的代码查看:



以上说明目前的配置是:60 M

那么这个的配置方法是:
1、修改配置文件
可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。
代码如下:
max_allowed_packet = 20M
 
我爱模板网用的是本地的wamp环境,对着图标左键单击->MySQL->my.ini即可。

如果找不到my.cnf可以通过如下的命令行代码:
mysql --help " grep my.cnf
 
去寻找my.cnf文件。
linux下该文件在/etc/下。
 
2、在mysql命令行中修改
在mysql 命令行中运行:



注意:
这样修改会报错:mysql> set  max_allowed_packet=16MB;
ERROR 1232 (42000): Incorrect argument type to variable "max_allowed_packet'
 
退出命令行,重启mysql服务,再进入。
/etc/init.d/mysqld start