Laravel:字符串数据,右截断:1406 数据对于列来说太长
我有一个带有“酒店”列的表格。该项目是在Laravel 5.4中创建的,所以我使用了迁移。
$table->string('hotel', 50);
这是MYSQL VARCHAR(50)。它运作良好,因为当我开发时,我使用了简短的酒店名称,如“希尔顿纽约5号”*。
现在该项目正在生产中,客户问他们为什么不能输入长酒店名称。我用这样的模拟酒店名称测试过它,如“长长长长长长长和非常非常长的酒店名称5星”
它给了我一个错误:
“SQLSTATE[22001]:字符串数据,右截断:1406 数据对于第 1 行的'酒店'列来说太长了”
我已经在我的Sequel Pro中打开了数据库并更改了它
- 首至瓦尔查尔 (255)
- 然后到文本
每次更改后,我都使用相同的“长长长长长长长和非常非常长的酒店名称5开始”进行测试,并得到相同的错误(见上文)。
我已检查了列的类型
SHOW FIELDS FROM table_name
它给了我
现场|类型
酒店 |发短信
因此,该字段的类型确实是“文本”(65 535个字符)。
也许它与Laravel迁移文件(见上文)有某种联系,我在一开始就设置了VARCHAR(50)?但是我无法在生产环境中重新运行迁移,因为该表现在有数据。
将不胜感激任何帮助。
更新:我发现它实际上在DB中保存了很长的酒店名称。但是用户每次提交表单后仍然会遇到这个令人讨厌的错误...