我已经查看了整个互联网,但找不到我正在寻找的简单答案 - 可能是因为它不存在,但是.. 可能是因为我不知道要搜索的正确术语。
好的,所以,我有一个变量 - 它实际上是我传递给我的函数的数组中的一个键值对。关键是 args[comments_提到] 并且值是为我动态生成的 - 它总是数字,用逗号分隔(即 1,2,3,4,5)
所以,只是要超级清楚:
$args[comments_mentioned] == "1,2,3,4"; //could be any amount of number, not just 1,2,3,4,5
我想将它作为变量传递到 sql 语句中,以在“IN”子句中使用,如下所示:
$sr_sql = <<<SQL
SELECT *
FROM $wpdb->commentmeta
WHERE meta_value = %s
AND comment_ID in ($args[comments_mentioned])
ORDER BY meta_id DESC
SQL;
然后,使用 wordpress 准备它并获得结果
$sr_query = $wpdb->prepare( $sr_sql, $args[user_id]) );
//receive the correct sql statement, and plug 'er in.
$sr_comment_rows = $wpdb->get_results($sr_query);
并运行我的 foreach 循环:
foreach ($sr_comment_rows as $sr_comment) {
$sResults .= 'do something with $sr_comment';
}
现在,我意识到上面的代码不起作用——我不能像那样传递变量。但是,我不能将它作为字符串 (%s) 传递,因为它将它包装在 '1,2,3,45' 中,因此它会查找整个字符串,而不是每个数字。由于逗号,我不能将其作为 int (%d) 传递...
在其他帖子中,他们提到了创建一个临时表或变量,但是,我不确定这是否是在 mysql 中执行此操作的正确方法,或者一旦我这样做了如何引用它。
那么,我该怎么做呢?偏爱有效的实际代码;)
感谢您的阅读和帮助!