|  在技术加营销的道路上越走越远
温馨提示
我是弹窗内容
当前位置:首页 > PHP经验积累 > Data too long for column 'image'
Data too long for column 'image'

Data too long for column 'image'

日期:2022-11-20 浏览量:1042 原创作者:湖八爷
刚刚在博客添加文章数据的时候爆出了:Data too long for column 'image' at row 1的错误,这是一个非常常见的错误,记录一下方便后续带新人。

image列的数据太长.png


一,定位错误原因。

Data too long for column 'image' at row 1字面意思就是 image 列的数据太长了。

通过字面意思,我们基本上可以断定,是image字段数据超过了数据库表限制的最大长度导致的错误。


使用Navicat打开数据库表设计看一下image字段,果然这个字段设置为char 43,也就是固定43个字符,如果超过了43个字符就无法成功存储这条数据。


使用Navicat打开数据库表设计看一下image字段.png


再查看一下我们刚刚提交的这条数据中image字段的数据,/uploadfile/2022/1120/20221120015239805.jpeg,44个字符,果然超过了。



二,解决错误的方案。

定位到报错的原因,解决起来就简单多了。对于这个错误,我们可以有很多种解决方案,看那种最合适就采用那种即可。


1:重新设计这张数据库表,将image字段设置为char 44,就可以成功保存上面的数据了。

优点是占用空间小。缺点是,后续再来一个超过44个字符的数据又会报出这个错误。


2:将image字段设置为varchar 255,给这个字段一个不固定的长度。

优点是不超过255字符的数据都可以保存。缺点是相对于上面char类型,占用空间多,性能降低。


3:给上传图片的功能增加一个文件类型过滤的功能,只允许上传png和jpg类型的图片,把gif,jpeg,webp等类型的图片统统过滤掉,一旦符合过滤条件,前端就提示:重新上传,不支持上传该类型的文件,只允许上传png类型和jpg类型的图片。

我本次就是采用了这个解决方案,仅供大家参考。