راکت
حل شده

1406 Data too long for column

4 پاسخ

مفهوم این خطا چیه؟
و راه حلش؟
SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'slug' at row 1 (SQL: update articles set slug =

@ali.bayat
@hesammousavi
@mhyeganeh
@Rp76
@milad

ثبت پرسش جدید

پاسخ‌ها

4
Morteza14
Morteza14
@morteza14

تخصص: برنامه نویس لاراول

بهترین پاسخ

مشکل تو بخش فرانت بود
اتریبیوت name داخل تگ slug اشتباها هم نام اتریبیوت name توضیحات خورده بود

مهدی شاه عباسیان
مهدی شاه عباسیان
@shahabbasian

تخصص: برنامه نویس

دیتایی که میخواید ذخیره کنید از طول رشته که در مایگریشن یا به صورت دستی در جدول تایین کردید بزرگتره

اگر از مایگریشن در لاراول استفاده میکنید طول رشته را برای ستون slug بیشتر کنید:

$table->string('slug', 255)

و یا به صورت دستی در phpmyadmin مقدار Length/Values ستون slug را بیشتر کنید

و یا متن کوتاهتری در این ستون ذخیره کنید که تعداد کاراکترش بیشتر از length ستون slug نباشه

Morteza14
Morteza14
@morteza14

تخصص: برنامه نویس لاراول

خواستم از phpmyadmin اصلاحش کنم ولی این خطارو میده

توضیح تصویر رو وارد کنید

@mehdi.shahabbasian

شاید پاسخ شما همین‌جا باشد

مهدی شاه عباسیان
مهدی شاه عباسیان
@shahabbasian

تخصص: برنامه نویس

به پوشه app/Providers/ مراجعه کنید و فایل AppServiceProvider.php را ویرایش کنید:

ابتدا کلاس زیر را use

use Illuminate\Support\Facades\Schema;

و بعد متد زیر را ویرایش کنید:

public function boot()
{
    Schema::defaultStringLength(255);
}

حالا از طریق مایگریشن جدول رو بسازید.

اگر باز هم مشکل پا برجا بود لازمه که با terminal به دیتابیس وصل بشید: (فرض میگیرم که نام کاربری دیتابیس root و رمز خالی است

$ mysql -u root -p

و بعد دستور زیر را بترتیب بزنید:

SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=on;
SET GLOBAL innodb_large_prefix=on;

من در لینوکس کار میکنم و نمیتونم با phpmyadmin این دستوراتو بزنم اما ممکن هم هست که شما در ویندوز دارید کار میکنید براتون قابل ویرایش باشه پس یکبار در خود phpmyadmin رو جدولتون برید و از تب های بالا SQL و دستورات بالا رو یکی یکی در کادرش بزنید و GO

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام