Làm cách nào để nhận giá trị INSERT cuối cùng trong PHP?

Hãy để chúng tôi bắt đầu bằng cách chuẩn bị dữ liệu mẫu. Chúng ta sẽ tạo một bảng, employee_designation, sau đó là chèn các hàng vào đó

#create the table employee_designation
CREATE TABLE employee_designation [
	  id int NOT NULL AUTO_INCREMENT,
	  emp_id int DEFAULT NULL,
	  emp_name varchar[255] DEFAULT NULL,
	  emp_designation varchar[255] DEFAULT NULL,
	  PRIMARY KEY [id]
	];
# insert rows to employee_designation
	INSERT INTO employee_designation [emp_id,emp_name,emp_designation] 
	VALUES[10,"Henry","Sales Manager"];
	INSERT INTO employee_designation [emp_id,emp_name,emp_designation] 
	VALUES[20,"Richa","Sales Assistant"];
	INSERT INTO employee_designation [emp_id,emp_name,emp_designation] 
	VALUES [30,"Ved","Sales Assistant"];
	INSERT INTO employee_designation [emp_id,emp_name,emp_designation] 
	VALUES[40,"George","Senior Sales Manager"];
	INSERT INTO employee_designation [emp_id,emp_name,emp_designation] 
	VALUES[50,"Alexendra","Sales Assistant"];
	INSERT INTO employee_designation [emp_id,emp_name,emp_designation] 
	VALUES[60,"Gustav","Sales Manager"];
	INSERT INTO employee_designation [emp_id,emp_name,emp_designation] 
        VALUES[70,"Veronica","Sales Manager"]; 

Lưu ý rằng cột id bị thiếu trong các câu lệnh chèn vì id là khóa auto_increment và sẽ tự gán các giá trị không âm

Đầu ra hành động. -

quảng cáo

hình ảnh_1

Tạo bảng và chèn thành công, để xem ảnh chụp nhanh của bảng thực thi

SELECT * FROM TABLE employee_designation; 

đầu ra. -

hình ảnh_2

Cách lấy id được chèn lần cuối của bảng MySQL bằng hàm max[]

Chúng tôi sẽ sử dụng hàm max[] để lấy id được chèn lần cuối. Hàm Max[] trả về giá trị lớn nhất hiện tại cho một cột cụ thể. Quan sát truy vấn dưới đây cho giải pháp

 SELECT MAX[ id ] FROM employee_designation;

đầu ra. -

hình ảnh_3

Đầu ra trong image_3 cho thấy id được chèn lần cuối là 7 trong bảng employee_designation

Cách lấy id được chèn lần cuối của bảng MySQL bằng ORDER BY DESC

Chúng tôi sẽ thực hiện ĐẶT HÀNG BẰNG DESC trên các giá trị id được trả về từ một truy vấn đã chọn để lấy id được chèn cuối cùng. Trước tiên, truy vấn sẽ chọn tất cả các giá trị từ cột id, sau đó sắp xếp chúng theo thứ tự giảm dần. Cuối cùng, chỉ một bản ghi được trả về khi áp dụng mệnh đề GIỚI HẠN. Quan sát truy vấn dưới đây cho giải pháp

SELECT id FROM employee_designation ORDER BY id DESC LIMIT 1;

đầu ra. -

hình ảnh_4

Đầu ra trong image_4 cho thấy id được chèn lần cuối là 7 trong bảng employee_designation

Cách lấy id được chèn lần cuối của bảng MySQL bằng LAST_INSERT_ID[]

Chúng tôi sẽ sử dụng hàm LAST_INSERT_ID[] để lấy id được chèn lần cuối. Last_insert_id[] Hàm MySQL trả về giá trị BIG UNSIGNED cho câu lệnh chèn trên cột auto_increment

Lưu ý quan trọng

Nếu chỉ có một câu lệnh chèn duy nhất cho nhiều hàng, thì last_insert_id[] sẽ chỉ trả về giá trị được tạo cho hàng được chèn đầu tiên

Quan sát truy vấn dưới đây cho giải pháp

SELECT LAST_INSERT_ID[];

đầu ra. -

hình ảnh_5

Cách lấy id được chèn lần cuối của bảng MySQL bằng AUTO_INCREMENT

Chúng tôi sẽ sử dụng LƯỢC ĐỒ THÔNG TIN để lấy id được chèn cuối cùng của cột được tăng tự động của bảng MySQL

The example is lack of insert_id in multi_query. Here is my example:
Assuming you have a new test_db in mysql like this:

create database if not exists test_db;
use test_db;
create table user_info [_id serial, name varchar[100] not null];
create table house_info [_id serial, address varchar[100] not null];

Then you run a php file like this:

________số 8_______

$db = new mysqli[SERVER, MYSQL_USER, MYSQL_PASSWORD, "test_db", 3306];
if [$db->connect_errno]
  echo "create db failed, error is ", $db->connect_error;
else {
  $sql = "insert into user_info "
    . "[name] values "
    . "['owen'], ['john'], ['lily']";
  if [!$result = $db->query[$sql]]
    echo "insert failed, error: ", $db->error;
  else
    echo "last insert id in query is ", $db->insert_id, "\n";
  $sql = "insert into user_info"
    . "[name] values "
    . "['jim'];";
  $sql .= "insert into house_info "
    . "[address] values "
    . "['shenyang']";
  if [!$db->multi_query[$sql]]
    echo "insert failed in multi_query, error: ", $db->error;
  else {
    echo "last insert id in first multi_query is ", $db->insert_id, "\n";
    if [$db->more_results[] && $db->next_result[]]
      echo "last insert id in second multi_query is ", $db->insert_id, "\n";
    else
      echo "insert failed in multi_query, second query error is ", $db->error;
  }
  $db->close[];
}
?>

You will get output like this:

last insert id in query is 1
last insert id in first multi_query is 4
last insert id in second multi_query is 1

Conclusion:
1 insert_id works in multi_query
2 insert_id is the first id mysql has used if you have insert multi values

Làm cách nào để lấy ID chèn cuối cùng trong MySQL bằng PHP?

Lấy ID của bản ghi được chèn lần cuối .
Ví dụ [Hướng đối tượng MySQLi]

Chủ Đề