programing

MySQL PHP - SELECT WHERE ID = array()?

magicmemo 2023. 8. 24. 21:57
반응형

MySQL PHP - SELECT WHERE ID = array()?

중복 가능성:
배열을 사용한 MySQL 조회
mysql에 배열 전달

나는 PHP로 배열을 가지고 있습니다:

$array = array(1, 4, 5, 7);

보시다시피, 저는 다양한 값들을 가지고 있지만, 저는 MYSQL 문을 작성하고 싶습니다. 그것은 다음과 같은 것들을 확인할 것입니다.id배열의 모든 값과 같습니다.예를 들어, 행에 다음이 있는 경우id1의 경우 해당 행을 반환하며, 4, 5 및 7에 대해서도 마찬가지입니다.배열의 길이는 프로그램의 특성에 따라 달라질 수 있기 때문에 문제가 발생합니다.그냥 해도 될까요?

SELECT ...
  FROM ...
 WHERE id = '$array'

아니면 더 좋은 방법이 있을까요?
만약 제가 확실하지 않다면, 저에게 더 많은 정보를 요청해주세요.

사용하다IN.

$sql = 'SELECT * 
          FROM `table` 
         WHERE `id` IN (' . implode(',', array_map('intval', $array)) . ')';

당신이 찾고 있는 것은IN()진술.지정된 필드에 하나 이상의 값이 포함되어 있는지 테스트합니다.

SELECT * FROM `Table` WHERE `id` IN (1, 2, 3)

간단한 루프를 사용하여 변환할 수 있습니다.$array변수를 올바른 형식으로 변환합니다.어레이 값이 프런트 엔드에서 오는 경우 SQL 주입을 주의해야 합니다.

사용하기만 하면 됩니다.ID IN ()구문:

$sql = "SELECT FROM `table` WHERE `ID` IN (".implode(',',$array).")";

다음과 같이 쿼리를 작성할 수 있습니다.

select * from table where id in (1, 4, 6, 7)

필요한 만큼 값을 추가할 수 있습니다.

다음을 사용할 수 있습니다.IN연산자:

$sql = 'SELECT FROM WHERE id IN (' . implode(",", $array) . ')';

MySQL에는 목록에서 사용할 수 있는 값의 수에 대한 제한이 있을 수 있습니다.IN교환입니다.

넌 할 수 있다.SELECT WHERE id IN (item1, item2...)PHP 배열을 반복하여 쿼리를 위한 배열을 작성합니다.

언급URL : https://stackoverflow.com/questions/9476146/mysql-php-select-where-id-array

반응형