首页 >数据库 >mysql教程 >如何在 IN() 条件中使用具有多个值的 WordPress 准备语句?

如何在 IN() 条件中使用具有多个值的 WordPress 准备语句?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-12 19:09:02637浏览

How to Use WordPress Prepared Statements with Multiple Values in the IN() Condition?

使用 IN 条件包含多个值的 WordPress 准备语句

在 WordPress 中使用 IN() 条件中包含多个值的准备语句时,将这些价值观正确地输入到声明中至关重要。原始代码尝试传递包含值的字符串,但 WordPress 将其解释为带有转义双引号的单个字符串。

要纠正此问题,请采用以下方法:

  1. 创建值数组: 将逗号分隔的值字符串转换为单个值的数组
$villes = array("paris", "fes", "rabat");
  1. 生成 SQL 语句: 使用 IN() 条件的适当数量的占位符 (%s) 构造 SQL 语句。
$sql = "
  SELECT DISTINCT telecopie
  FROM `comptage_fax`
  WHERE `ville` IN(" . implode(', ', array_fill(0, count($villes), '%s')) . ")
";
  1. 使用call_user_func_array: 使用 call_user_func_array 调用 $wpdb->prepare 将数组的值作为单独的参数传递。这可确保单独处理每个值。
$query = call_user_func_array(array($wpdb, 'prepare'), array_merge(array($sql), $villes));

echo $query;

此修改后的代码可确保使用 IN() 条件中的多个值正确构造准备好的语句。通过使用值数组和 call_user_func_array,您可以避免转义双引号的问题并执行具有所需结果的准备好的语句。

以上是如何在 IN() 条件中使用具有多个值的 WordPress 准备语句?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn