반응형
다음 코드가 있습니다. 테이블의 마지막 행을 반환해야하는 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
반응형
'MySql' 카테고리의 다른 글
MySQL ON DUPLICATE KEY UPDATE를 사용하여 MySQL로드 데이터 INFILE (0) | 2021.01.09 |
---|---|
MySQL MySql 연결 및 따옴표 (0) | 2021.01.09 |
MySQL 조인 된 테이블이있는 행 수 선택 (0) | 2021.01.09 |
MySQL : 열 값이 특정 하위 문자열로 끝나는 행 찾기 (0) | 2021.01.09 |
MySQL 노드를 사용하여 JSON 객체를 mysql로 가져 오는 가장 빠른 방법 (0) | 2021.01.09 |
댓글