2

重複の可能性:
整数の配列があります。mysql クエリ (php) でそれぞれを使用するにはどうすればよいですか?

フィルタリング関数を作成しようとしていますが、mysqli クエリ内で、テーブル行に配列内の値の 1 つと等しい値があるかどうかを確認できるかどうかを知りたいです。コードがより明確になることを願っています:

$age=array(37,35);
$query = mysqli_query($link, "SELECT * FROM users WHERE age = $age");

したがって、年齢が 37 歳または 35 歳のユーザーのすべての行をクエリで返すようにしたいのですが、上記のコードは機能しません。

使用する

...WHERE age = 35 OR age = 37"

いわば動的にしたいので、しません。

ありがとう

4

5 に答える 5

4

SQL のIN()句を使用します。

SQL の例:

SELECT * FROM users WHERE age IN (35, 37)

PHP の例:

$query = "SELECT * FROM users WHERE age IN (" . implode(',', array_map('intval', $age)) . ")";

注: SQL インジェクションに注意してください。

于 2012-06-28T16:32:35.683 に答える
2
$age=array(37,35); 
$age_str=implode(',',$age);
$query = mysqli_query($link, "SELECT * FROM users WHERE age in ($age_str)"); 
于 2012-06-28T16:34:44.993 に答える
1

php joinメソッドを SQL の IN 句と一緒に使用する

$age=array(37,35);
$query = mysqli_query($link, "SELECT * FROM users WHERE age IN (".join(",", $age).")");
于 2012-06-28T16:34:02.143 に答える
1

次のように使用します。

$query = mysqli_query($link, "SELECT * FROM users WHERE age IN (" . implode(",",$age) . ")");
于 2012-06-28T16:34:43.500 に答える
1

句で使用します。

$ageArr = implode(',',$age);
SELECT * FROM users WHERE age IN ($ageArr);
于 2012-06-28T16:38:53.177 に答える