6
하나의 쿼리로 MySQL에 다중 삽입 후 모든 삽입 된 ID를 가져올 수 있습니까? 예 (추상) : 그것은 이렇게 여기에서 할 수MySQL에 마지막으로 삽입 된 IDS 가져 오기
$ids = array();
$parts = array();
$query = 'INSERT INTO `TABLENAME` (`FIELDS`) VALUES';
$items = array(values);
foreach($items as $item){
$parts[] = '('.$item['key1'].','.$item['key2']...','.$item['keyN'].')';
}
$query .= implode(',',$parts);
mysqli_query($link,$query);
$ids = ... // getting ALL inserted IDs
var_dump($ids);
(솔루션 중 하나). 예제 (초록) :
$ids = array();
$items = array(values);
foreach($items as $item){
$query ='INSERT INTO `TABLENAME` (`FIELDS`) VALUES('.$item['key1'].','.$item['key2']...','.$item['keyN'].')';
mysqli_query($link,$query);
$ids[] = mysqli_insert_id($link);
}
var_dump($ids);
그러나 나는 다음과 같이하고 싶다 : 하나의 쿼리 INSERT 모든 항목 - 하나의 쿼리는 모든 삽입 된 ID를 얻는다.
UPDATE
내 솔루션 (질문 generate an integer sequence in MySQL 기준) 단일의 요청에 의한 마지막으로 삽입 ID`s의 뒷 덮개 순서.
$query_inserted_ids = "SELECT @row := @row +1 AS row_id
FROM TABLENAME , (SELECT @row := LAST_INSERT_ID()-1)r
WHERE @row <(
SELECT id
FROM TABLENAME
ORDER BY id DESC
LIMIT 1)";
감사합니다.
참조 http://stackoverflow.com/questions/16540997/get-all-inserted-ids-when-inserting-multiple-rows-using-a-single-query –