私はインターウェブ全体を見てきましたが、探している単純な答えを見つけることができません-おそらくそれが存在しないためですが..おそらく検索する正しい用語がわからないためです。
さて、変数を取得しました。実際には、関数に渡す配列内のキーと値のペアです。キーは args[comments_modified] で、値は動的に生成されます - 常にコンマで区切られた数値になります (つまり、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
次のように、これを「IN」句で使用する変数としてSQLステートメントに渡したいと思います。
$sr_sql = <<<SQL
SELECT *
FROM $wpdb->commentmeta
WHERE meta_value = %s
AND comment_ID in ($args[comments_mentioned])
ORDER BY meta_id DESC
SQL;
次に、ワードプレスの準備を使用して準備し、結果を取得します
$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 で正しい方法であるかどうか、または参照する方法が正しいかどうかはわかりません。
それで、どうすればいいですか?動作する実際のコードの好み;)
読んで助けてくれてありがとう!