علی رضا
1 سال پیش توسط علی رضا مطرح شد
7 پاسخ

مشکل SQL

سلام بنده یک مشکل داره این که در utf8_persian_ci نمیشه بعضی از ایموجی ها رو سیو کرد ارور میده روشی هست که ارور نده ؟!
داخل فیلد قراره 🤖 ساخت ربات سیو شه ولی ارور میخوره


ثبت پرسش جدید
مهدی
تخصص : Backend Developer
@mahdidv 1 سال پیش مطرح شد
0

سلام
utf8mb4_unicode_ci
اینو تست کن


MagicalDev
تخصص : Laravel Developer
@magicaldev1 1 سال پیش مطرح شد
0

درود

CREATE TABLE `users` (

) DEFAULT CHARSET = utf8mb4_persian_ci

علی رضا
تخصص : علاقه مند به php
@reza1275 1 سال پیش مطرح شد
0

سلام شرمنده مشکل تایپی بود فرمت utf8mb4_persian_ci هست ولی بعضی از ایموجی ها رو ساپورت نمیکنه ارور میخوره مشکل من اینه اروره هست.


علی رضا
تخصص : علاقه مند به php
@reza1275 1 سال پیش مطرح شد
0

ممنون از پاسخ تست میکنم


MagicalDev
تخصص : Laravel Developer
@magicaldev1 1 سال پیش مطرح شد
0

متن ارور رو بفرستید کامل


فرزاد عامری
تخصص : وردپرس
@Farzadameri 1 سال پیش مطرح شد
0

سلام دوست عزیز
کانکشن پیشفرض MySQL لاراول به صورت پیشفرض از کاراکتر ست utf8 استفاده میکنه که نمیتونه شکلک ها رو ذخیره کنه و معمولا با این خطا مواجه میشیم :

SQLSTATE[HY000]: General error: 1366 Incorrect string value...

برای حل این مشکل کانکشن mysql در config/database.php رو به صورت زیر اصلاح کنید :

'mysql' => [
    'driver' => 'mysql',
    [...]
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    [....]

محمد شریف احمدی
تخصص : یک عدد برنامه نویس
@mrahmadi 1 سال پیش مطرح شد
0

این مشکل معمولا به دلیل عدم پشتیبانی بانک اطلاعاتی از کاراکترهای UTF-8 همه جانبه بوده و برای رفع آن می‌توانید این دو راه‌حل را امتحان کنید:

۱- تغییر کاراکترست علامتی دیتابیس از utf8_persian_ci به utf8mb4_persian_ci گاهی اوقات نیاز است تا برنامه‌ها یا سیستم‌های مختلف از کاراکترست‌های پشتیبانی شده توسط MySQL پشتیبانی کنند.بنابراین امکان دارد که تغییر کاراکترست در دیتابیس به UTF-8MB4 نیاز داشته باشد. در صورت استفاده از مای‌اسکیوال، باید دستور زیر را در دیتابیس اجرا کنید:


ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

همچنین برای فیلدهای خاص می‌توانید از دستور زیر استفاده کنید:


ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

در نهایت، از تمامی پشتیبان‌ها مطمئن شوید که UTF-8MB4 را پشتیبانی می‌کنند.

۲- استفاده از کاراکترهای Emoji بصورت جایگزین. ممکن است بعضی از کاراکترهای Emoji با کاراکترهای UTF-8 متداول تفاوت‌هایی داشته باشند که دیتابیس ممکن است آن‌ها را پشتیبانی نکند. برای رفع این مشکل، می‌توانید از جایگزینی کاراکترهای Emoji استفاده کنید. به عنوان مثال، برای کاراکتری مانند 🤖 می‌توانید از کد HTML معادل آن یعنی 🤖 استفاده کنید که دیتابیس با آن سازگار است.

امیدوارم این راه‌حل‌ها به شما کمک کند مشکل را حل کنید.


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

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