Debug School

rakesh kumar
rakesh kumar

Posted on • Updated on

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

[data-right-truncated-1406-data-too-long-for-column]

(https://stackoverflow.com/questions/48477861/laravel-string-data-right-truncated-1406-data-too-long-for-column)

I have a table with a column 'hotel'. The project is created in Laravel 5.4, so I used Migrations.

$table->string('hotel', 50);
This is MYSQL VARCHAR (50). It was working good, because when I was developing I used short hotel names like "HILTON NEW YORK 5"*.

Now the project is on production and customer asked why they can't input long hotel names. I've tested it with such a mock hotel name as "Long long long long long long long long long and very-very-very long hotel name 5 stars"

It gave me an error:

"SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'hotel' at row 1"

I've opened database in my Sequel Pro and changed it

first to VARCHAR (255)
then to TEXT
After each change I tested it with the same "Long long long long long long long long long and very-very-very long hotel name 5 starts" and get the same error (see above).

I've checked the type of column with

SHOW FIELDS FROM table_name
and it gave me

Field | Type

hotel | text

so the type of the field is 'text' indeed (65 535 characters).

Maybe it's somehow connected with Laravel Migration file (see above) where I set VARCHAR (50) in the beginning? But I can't re-run migration on production, because the table has data now.

Would appreciate any help.

UPDATE: I discovered that it actually saves that long hotel name in the DB. But user still gets this annoying mistake every time after submitting the form...

Another solution

change length value for particular field
Image description

another way

$table->longText('columnName')
Enter fullscreen mode Exit fullscreen mode

Another way

Schema::table('the_table_name', function (Blueprint $table) {
    $table->string('hotel', 255)->change();
});
Enter fullscreen mode Exit fullscreen mode

Top comments (0)