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

Mary-Kate Olsen
リリース: 2024-11-12 19:09:02
オリジナル
538 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート