"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > Laravel WhereIn وGroupBy: كيفية حل خطأ MySQL 1055؟

Laravel WhereIn وGroupBy: كيفية حل خطأ MySQL 1055؟

تم النشر بتاريخ 2024-12-21
تصفح:611

Laravel WhereIn and GroupBy: How to Resolve MySQL's 1055 Error?

Laravel: خطأ في بناء الجملة أو انتهاك الوصول: خطأ 1055 عند استخدام WhereIn وGroupBy

لاسترجاع بيانات صف معين، يسمح لنا Laravel بذلك استخدم كلاً من WhereIn وGroupBy في نفس الاستعلام. ومع ذلك، قد يؤدي هذا في بعض الأحيان إلى "خطأ في بناء الجملة أو انتهاك الوصول: خطأ 1055".

أسباب الخطأ

يحدث هذا الخطأ عندما:

  • يتم تمكين الوضع الصارم في إعدادات MySQL.
  • لا يتم تضمين حقل المعرف، الذي يتم استخدامه في شرط WhereIn، في GroupBy قائمة الحقول.

الحلول

تعطيل الوضع الصارم

يمكنك تعطيل الوضع الصارم في MySQL عن طريق تعيين "صارم" ' => خطأ في المصفوفة 'mysql' لملف config/database.php.

'mysql' => [ ... 'صارم' => خطأ، ... ]،
'mysql' => [
    ...
    'strict'   => false,
    ...
],

إضافة أوضاع إلى خيارات MySQL

بدلاً من ذلك، يمكنك ترك الوضع الصارم ممكّنًا وإضافة أوضاع محددة إلى خيار "الأوضاع" في مصفوفة "mysql":

'mysql' => [ ... 'صارم' => صحيح، 'modes' => ['STRICT_TRANS_TABLES']، ... ]،
'mysql' => [
    ...
    'strict'   => false,
    ...
],

دمج حقل GroupBy في WhereIn

تأكد من تضمين حقل المعرف المستخدم في شرط WhereIn أيضًا في قائمة حقول GroupBy. سيؤدي هذا إلى منع حدوث الخطأ.

$loadids =تفجير("#@*", $reciptdet->loading_id); $loadingdatas = DB::table('loading') ->groupBy(['vehicle_no', 'id']) ->whereIn('id', $loadids) ->get();
$loadids = explode("#@*", $reciptdet->loading_id);
$loadingdatas = DB::table('loading')
    ->groupBy(['vehicle_no', 'id'])
    ->whereIn('id', $loadids)
    ->get();
من خلال تنفيذ هذه الحلول، يمكنك حل "خطأ في بناء الجملة أو انتهاك الوصول: خطأ 1055" عند استخدام WhereIn وGroupBy في نفس الاستعلام.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3