본문 바로가기
MySql

MySQL mysqli_insert_id ()가 항상 0을 반환하는 이유는 무엇입니까?

by 베이스 공부 2021. 1. 9.
반응형

다음 코드가 있습니다. 테이블의 마지막 행을 반환해야하는 mysqli_insert_id () (이 경우 "$ last_row")는 항상 0을 반환합니다. 왜 그런가요?

<?php
include('connect-db.php');
$submit_date = date("Ymd");
$content = mysqli_real_escape_string($connection, htmlspecialchars($_POST['editor']));
$ip_address = $_SERVER['REMOTE_ADDR'];
$last_row = mysqli_insert_id($connection);

if ($content != '') {

$sql = "INSERT INTO source ( track_id, submit_date, ip, content) VALUES ('$last_row', '$submit_date','$ip_address','$content')";

if (!mysqli_query($connection,$sql))
  {
  die('Error: ' . mysqli_error($connection));
  }

echo $last_row;
mysqli_close($connection);
}

?>

 

해결 방법

 


... AUTO_INCREMENT 속성이있는 열이있는 테이블에서 쿼리로 생성 된 ID를 반환합니다. 마지막 쿼리가 INSERT 또는 UPDATE 문이 아니거나 수정 된 테이블에 AUTO_INCREMENT 속성이있는 열이없는 경우이 함수는 0을 반환합니다 .

(내 강조)

즉, ID를 자동 생성 한 삽입 즉시 실행하면 삽입을 수행 한 것과 동일한 연결에서 해당 삽입에 대해 생성 된 ID를 반환합니다.

이것은 위에 링크 된 문서의 예제로 설명됩니다.

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

 

참조 페이지 https://stackoverflow.com/questions/15332250

 

 

반응형

댓글