ホームページ >データベース >mysql チュートリアル >WordPress で複数の値を持つプリペアドステートメントを使用するには?

WordPress で複数の値を持つプリペアドステートメントを使用するには?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-11 07:35:02485ブラウズ

How to Use Prepared Statements with Multiple Values in WordPress?

WordPress で複数の値を持つプリペアド ステートメント

WordPress で複数の値を持つプリペアド ステートメントを利用する場合、値を適切に処理することが重要です。この問題は、値が連結文字列として提供される場合に発生し、値の不適切なエスケープにつながります。

解決策

この問題を修正するには、次のアプローチを使用できます。 :

// Create an array of the values to use in the list
$villes = array("paris", "fes", "rabat");    

// Generate the SQL statement
// The number of %s items is based on the length of the $villes array
$sql = "
  SELECT DISTINCT telecopie
  FROM `comptage_fax`
  WHERE `ville` IN(" . implode(', ', array_fill(0, count($villes), '%s')) . ")
";

// Call $wpdb->prepare passing the values of the array as separate arguments
$query = call_user_func_array(array($wpdb, 'prepare'), array_merge(array($sql), $villes));

echo $query;

Elaboration

  • array_fill(): 各要素に指定された値を持つ、指定された長さの配列を生成します。
  • implode(): 配列の要素を文字列に連結します。
  • call_user_func_array(): パラメーターの配列を使用して関数を呼び出します。
  • array_merge(): 2 つ以上の配列を 1 つにマージします。

以上がWordPress で複数の値を持つプリペアドステートメントを使用するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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