首页 > 解决方案 > 如何将数组值传递到准备好的 SQL WHERE IN 语句中?

问题描述

试图将二维数组传递到准备好的 WP SQL 语句中。

$idList是二维数组。

这就是我所拥有的:

    $implodelist = ".implode(',', $idList).";
    
    
    global $wpdb;

    $result = $wpdb->get_results($wpdb->prepare("
    SELECT wp_users.`user_email`,
       wp_wp_pro_quiz_statistic.`correct_count`,
       wp_wp_pro_quiz_statistic.`incorrect_count`,
       wp_wp_pro_quiz_category.`category_name`
    FROM wp_users
      INNER JOIN wp_wp_pro_quiz_statistic_ref
         ON wp_users.`ID` = wp_wp_pro_quiz_statistic_ref.`user_id`
      INNER JOIN wp_wp_pro_quiz_statistic
         ON wp_wp_pro_quiz_statistic_ref.`statistic_ref_id` = wp_wp_pro_quiz_statistic.`statistic_ref_id`
      INNER JOIN wp_wp_pro_quiz_question
         ON wp_wp_pro_quiz_statistic.`question_id` = wp_wp_pro_quiz_question.`id`
      INNER JOIN wp_wp_pro_quiz_category
         ON wp_wp_pro_quiz_question.`category_id` = wp_wp_pro_quiz_category.`category_id`
    WHERE wp_users.`ID` IN %s", $implodelist));

但是数组(作为字符串)似乎没有正确传递到 %s 占位符中。

如果我删除准备好的语句并".implode(',', $idList)."代替%s,它可以工作。

如何将数组值传递到 SQL 语句中?

标签: phpsqlwordpress

解决方案


推荐阅读