PHP では、in クエリを使用して、一連の値の中から特定の値を検索できます。通常、in クエリでは、カンマで区切られた値のリストを指定する必要があります。たとえば、次のリストから 20、21、または 22 歳のすべてのユーザーを検索する必要がある場合があります。
SELECT * FROM users WHERE age IN (20,21,22);
この例では、in クエリに 3 つの整数値のリストを指定します。
ただし、PHP と MySQL を使用してプログラミングする開発者にとって、クエリにはさまざまなバリエーションがあります。そのうちの 1 つは、PHP 配列をリストパラメータとして使用することです。
この使用法により、PHP 配列を MySQL クエリの in 演算子に直接渡し、そこから必要なデータを取得することができます。
以下はサンプル コードです:
$ages = [20,21,22]; $sql = "SELECT * FROM users WHERE age IN (".implode(',',$ages).")"; $result = mysqli_query($conn, $sql);
この例では、PHP の implode()
関数を使用して、年齢配列をカンマ区切りの文字列に変換しました。 , 次に、それを SQL クエリの IN 演算子に埋め込みます。
もちろん、他のメソッドを使用して、PHP 配列を IN クエリに適したデータ型に変換することもできます。たとえば、次のとおりです。
$ages = [20,21,22]; $ageList = "('".implode("','",$ages)."')"; $sql = "SELECT * FROM users WHERE age IN $ageList"; $result = mysqli_query($conn, $sql);
この例では、文字列補間を使用します)。 SQL クエリの IN 演算子を使用し、各年齢が文字列値として扱われるように一重引用符を使用しました。
場合によっては、PHP 配列を IN クエリ パラメーターとして使用することが最適な解決策ではない可能性があることに注意してください。たとえば、クエリに多数の値が含まれる場合、クエリが遅くなる可能性があるため、IN クエリの使用は最良の選択ではない可能性があります。
さらに、文字列補間または implode()
関数を使用して配列をクエリ パラメーターに変換すると、SQL インジェクション攻撃のリスクが生じる可能性があることに注意することも重要です。したがって、この方法を使用する場合は、データが適切にフィルタリングされ、クレンジングされていることを常に確認してください。
一般に、PHP で IN クエリを使用する場合、PHP 配列を IN クエリ パラメータとして使用することを選択できますが、そのパフォーマンスとセキュリティに注意する必要があります。
以上がPHPクエリは配列ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。