التعامل مع البيانات المعدة باستخدام حالة IN () في WordPress
يوفر WordPress بيانات معدة للحماية من هجمات حقن SQL وتحسين أداء الاستعلام. ومع ذلك، فإن استخدام شرط IN() مع قيم متعددة في سلسلة يمكن أن يمثل تحديات.
بيان المشكلة:
ضع في اعتبارك الموقف التالي: $villes = ''"باريس"،"فاس"،"الرباط"'; $sql = 'اختر نسخة هاتفية مميزة من `comptage_fax` حيث `ville` IN(%s)'; $query = $wpdb->prepare($sql, $villes);$villes = '"paris","fes","rabat"'; $sql = 'SELECT distinct telecopie FROM `comptage_fax` WHERE `ville` IN(%s)'; $query = $wpdb->prepare($sql, $villes);لا يفلت هذا الرمز بشكل صحيح من السلسلة، مما يؤدي إلى سلسلة واحدة مع علامات اقتباس مزدوجة تم تجاوزها:حدد نسخة مقربة مميزة من "comptage_fax" حيث "ville". IN('\"باريس\",\"فاس\",\"الرباط\"')
$villes = '"paris","fes","rabat"'; $sql = 'SELECT distinct telecopie FROM `comptage_fax` WHERE `ville` IN(%s)'; $query = $wpdb->prepare($sql, $villes);
الحل:
إلى بشكل صحيح تنفيذ عبارة معدة بقيم متعددة في WordPress، اتبع الخطوات التالية:// قم بإنشاء مصفوفة من القيم لاستخدامها في القائمة $villes = array('paris', 'fes', 'rabat'); // إنشاء عبارة SQL. // عدد عناصر %s بناءً على طول مصفوفة $villes $sql = " اختر نسخة مميزة من "comptage_fax". أين `ville` في(" . Iplode(', ', array_fill(0, count($villes), '%s')) . ") "؛ // اتصل بـ $wpdb->استعد لتمرير قيم المصفوفة كوسائط منفصلة $query = call_user_func_array(array($wpdb, 'prepare'), array_merge(array($sql), $villes));$villes = '"paris","fes","rabat"'; $sql = 'SELECT distinct telecopie FROM `comptage_fax` WHERE `ville` IN(%s)'; $query = $wpdb->prepare($sql, $villes);
وظائف PHP المستخدمة:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3