"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية التعامل مع البيانات المعدة مع حالة IN () في WordPress؟

كيفية التعامل مع البيانات المعدة مع حالة IN () في WordPress؟

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

How to Handle Prepared Statements with IN() Condition in WordPress?

التعامل مع البيانات المعدة باستخدام حالة 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 المستخدمة:

  • implode() - لضم عناصر المصفوفة إلى ملف سلسلة
  • array_fill () - إنشاء مصفوفة مليئة بقيمة محددة
  • call_user_func_array () - يستدعي دالة مع تمرير المعلمات كـ array
  • array_merge() - يدمج صفيفين
هذا يضمن الأسلوب أن القيم الموجودة في $villes تم تهريبها بشكل صحيح ومعاملتها كقيم منفصلة في حالة IN().

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

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

Copyright© 2022 湘ICP备2022001581号-3