راکت
حل شده

تغیر collation دیتابیس در لاراول

4 پاسخ

سلام دوستان من چطوری میتونم collation دیتابیس رو تغیر بدم تا حروف فارسی هم درست داخلش ذخیره بشن

تصویر دیتابیس

تو این عکس قسمت tags رو ببینید من یه تگ فارسی به صورت ارایه وارد کردم ولی وقتی ذخیره شد اینطوری شد من وقتی میخوام از دستور LIKE برایه جستجو در قسمت tags استفاده کنم حروف انگلیسی رو پیدا میکنه اما حروف فارسی رو پیدا نمیکنه!

ثبت پرسش جدید

پاسخ‌ها

4
افشار محمودیان
افشار محمودیان
@afsharmahmoodian

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

بهترین پاسخ

فکر کنم شما قصد دارید یک آرایه رو تو دیتابیس ذخیره کنید ... برای این کار از دو تابع زیر استفاده کنید و آرایه رو به متن تبدیل کنید که بشه تو دیتابیس ذخیره کرد و موقعی که از دیتابیس میخواهید بخونید اون رو به آرایه تبدیل کنید ...

serialize()
unserialize()
افشار محمودیان
افشار محمودیان
@afsharmahmoodian

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

وارد phpmuadmin بشید و دیتا بیس رو انتخاب کنید و وارد قسمت Operations بشید و پایین صفحه قسمت collation رو میبینید...
utf8mb4persianc انتخاب کنید و تیک اعمال روی همه تیبل ها رو بزنید.

اگر خواستید از migration ها استفاده کنید باید بصورت زیر عمل کنید ...

public function up()
{
    DB::statement("SQL COMMAND");
}

برای دستورش هم از لینک زیر استفاده کنید.
https://stackoverflow.com/questions/10859966/how-to-convert-all-tables-in-database-to-one-collation

علیرضا جوادی
علیرضا جوادی
@mefroen

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

@afsharmahmoodian
اقایه محمودیان عزیز همین الان کاری رو که فرمودین تست کردم بازم همون خروجی قبل رو میده راه دیگه ای نیست؟

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

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

مقدار Collation رو روی utf8_persian_ci تنظیم کنید.

یکبار دیتابیستون رو کلا خالی کنید. تغییرات رو اعمال کنید و بعد دیتای جدید فارسی داخلش بریزید.
تا جایی که می‌دونم اگر قبل از اعمال تغییرات متن فارسی رو ذخیره کرده باشید عملا اون متن غیرقابل بازگشت و استفاده خواهد بود.

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

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