[SQL] MySQL은 : LAST_INSERT_ID ()는 0을 반환
SQLMySQL은 : LAST_INSERT_ID ()는 0을 반환
나는이 테스트 테이블을 가지고 :
CREATE TABLE IF NOT EXISTS `test` (
`id` INT(10) AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4;
삽입이 세 중 사용
INSERT INTO `test` (`id`) VALUES (NULL);
INSERT INTO `test` (`id`) VALUES (0);
INSERT INTO `test` () VALUES ();
및 발급
SELECT LAST_INSERT_ID();
그러나 쿼리는 항상 0 발생합니다.
PHP의에 mysql_insert_id 및 PDO :: lastInsertId () 중 어떤 결과를 얻을 수 없습니다.
나는이 모든 일에 놀겠다는 거 봤는데 작업에 얻을 수 없습니다. 아이디어?
해결법
-
==============================
1.따라서 SELECT LAST_INSERT_ID ()는 효과 렌더링 - 문제는 새로운 CONNECTION_ID에 쿼리를 발행 할 때마다 결과 FALSE로 설정의 MySQL의 phpMyAdmin을 구성 파일의 PersistentConnections에있을 것 같았다.
따라서 SELECT LAST_INSERT_ID ()는 효과 렌더링 - 문제는 새로운 CONNECTION_ID에 쿼리를 발행 할 때마다 결과 FALSE로 설정의 MySQL의 phpMyAdmin을 구성 파일의 PersistentConnections에있을 것 같았다.
다음의 주제에 모든 쿼리에 대한 추가 정보는 () 새로운 CONNECTION_ID를 생성
도움을 또한 감사 dnagirl
-
==============================
2.이 문제에 대한 단지 내 50 센트, 나는 단순히 테이블 인덱스로 설정에는 AUTO_INCREMENT가없는 경우는 0보다 LAST_INSERT_ID 이상을받지 않습니다 것으로 나타났습니다.
이 문제에 대한 단지 내 50 센트, 나는 단순히 테이블 인덱스로 설정에는 AUTO_INCREMENT가없는 경우는 0보다 LAST_INSERT_ID 이상을받지 않습니다 것으로 나타났습니다.
나는이에 반 시간 정도 낭비. 턴 나는이 테이블에 대한 사실 확인 0의 LAST_INSERT_ID ()를가 계속 밖으로.
-
==============================
3.당신이 결합해야
당신이 결합해야
INSERT INTO test (title) VALUES ('test');SELECT LAST_INSERT_ID();
그런 다음 마지막으로 삽입 된 ID를 얻을 것이다
-
==============================
4.저도 같은 문제를 가지고 있었다. 삽입 쿼리와 PHP 함수 내부 요청시에 mysql_insert_id () 또는 LAST_INSERT_ID ()는 0을 반환.
저도 같은 문제를 가지고 있었다. 삽입 쿼리와 PHP 함수 내부 요청시에 mysql_insert_id () 또는 LAST_INSERT_ID ()는 0을 반환.
나는 바로 INSERT 쿼리 그 기능 이후라는 별도의 PHP 함수에서 인 mysql_insert_id () 값을 요청하여 문제를 분류.
-
==============================
5.저도 같은 문제를했다하지만 난 거래를 작성하여이를 해결했다.
저도 같은 문제를했다하지만 난 거래를 작성하여이를 해결했다.
$db->begin(); $sql = "INSERT INTO 'test' VALUES('test')"; if ($db->query($sql)) { $id = $db->last_insert_id('test'); $db->commit(); return $id; } else{ $db->rollback(); return -1; }
나는 시도했다
return $db->last_insert_id('test');
애프터 "커밋"그러나 그것은 항상 "0"을 반환
그 당신을 도울 수 있기를 바랍니다
-
==============================
6.그것은 완벽하게 작동 ... 그것을 시도 ...
그것은 완벽하게 작동 ... 그것을 시도 ...
$result = mysql_query("INSERT INTO `test` (`title`) VALUES ('test')"); if ($result) { $id = mysql_insert_id(); // last inserted id $result = mysql_query("SELECT * FROM tablename WHERE id = $id") or die(mysql_error()); // return user details if (mysql_num_rows($result) > 0) { return mysql_fetch_array($result); } else { return false; } } else { return false; }
from https://stackoverflow.com/questions/13880267/mysql-last-insert-id-returns-0 by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 배쉬 스크립트는 MySQL의 값을 삽입 (0) | 2020.05.12 |
---|---|
[SQL] PHP에서 날짜 형식으로 ISO8601를 변환하는 방법 (0) | 2020.05.12 |
[SQL] MySQL의 대량로드 명령 줄 도구 (0) | 2020.05.12 |
[SQL] SQLSTATE [HY093] : 유효 파라미터 번호 : 바인드 변수의 개수가 선 (102)에 토큰의 수가 일치하지 않는 [폐쇄] (0) | 2020.05.12 |
[SQL] SQL은에 SQL Server 2008에서 테이블 만들기 댓글 (0) | 2020.05.12 |