ホームページ >データベース >mysql チュートリアル >IN() 条件で複数の値を持つ WordPress プリペアドステートメントを使用する方法

IN() 条件で複数の値を持つ WordPress プリペアドステートメントを使用する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-12 19:09:02595ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。