Id chèn cuối cùng của php

Trong bài này mình sẽ hướng dẫn cách sử dụng hàm LAST_INSERT_ID trong MySQL thông qua cú pháp và ví dụ thực tế

Id chèn cuối cùng của php

Bài viết này đã được đăng tại freetuts. net , không được sao chép dưới mọi hình thức.

1. description

Hàm LAST_INSERT_ID trả về giá trị AUTO_INCREMENT đầu tiên được đặt theo lệnh INSERT hoặc UPDATE gần đây nhất ảnh hưởng đến cột AUTO_INCREMENT

Trong hướng dẫn này, bạn sẽ học cách truy xuất ID duy nhất của hàng được thêm vào cuối cùng từ bảng cơ sở dữ liệu MySQL bằng PHP

Cách lấy ID của hàng hóa được chèn vào cuối cùng

Trong chương trình Thêm dữ liệu vào bảng mà bạn đã học MySQL tự động tạo một ID duy nhất (AUTO_INCREMENT) cho mỗi cột ID khi bạn thêm một bản ghi hoặc hàng mới vào bảng. Tuy nhiên, có một số vấn đề khi bạn cần ID được tạo tự động để thêm nó vào bảng thứ hai. Trong những trường hợp này, bạn có thể sử dụng hàm mysqli_insert_id() để truy xuất ID được tạo gần đây nhất, như được hiển thị trong ví dụ dưới đây

Đối với ví dụ này, chúng tôi sẽ sử dụng cùng một bảng người mà chúng tôi đã tạo trong chương trình Tạo bảng, có bốn cột id , first_name , last_name và email , trong đó id là cột từ khóa chính và được đánh dấu bằng AUTO_INCREMENT

If you insert a data row by using the ON DUPLICATE KEY UPDATE clause in an INSERT-statement, the mysql_insert_id() function will return not the same results as if you directly use LAST_INSERT_ID() in MySQL.

See the following example:

   // insert a datarow, primary key is auto_increment
   // value is a unique key
   $query = "INSERT INTO test (value) VALUES ('test')";
   mysql_query( $query );

   echo 'LAST_INSERT_ID: ',
          mysql_query( "SELECT LAST_INSERT_ID()" ),
          '
mysql_insert_id: ',
          mysql_insert_id();

?>

This will print:

LAST_INSERT_ID: 1
mysql_insert_id: 1

In this case the function returns the same as the MySQL-Statement.
But see the insert on an existing key:

   $query = "INSERT INTO test (value)
                  VALUES ('test')
                  ON DUPLICATE KEY UPDATE value = 'test2'";
   mysql_query( $query );

   echo 'LAST_INSERT_ID: ',
          mysql_query( "SELECT LAST_INSERT_ID()" ),
          '
mysql_insert_id: ',
          mysql_insert_id();

?>

This will print:

See the following example:2

See the following example:3

See the following example:4

See the following example:5

See the following example:6

Nếu chúng tôi thực hiện CHÈN hoặc CẬP NHẬT trên một bảng có trường AUTO_INCREMENT, chúng tôi có thể nhận ngay ID của bản ghi được chèn/cập nhật lần cuối

Trong bảng "MyGuests", cột "id" là trường AUTO_INCREMENT

TẠO BẢNG MyGuests (
id INT(6) KHÓA CHÍNH AUTO_INCREMENT CHƯA KÝ,
tên VARCHAR(30) NOT NULL,
họ VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date DẤU THỜI GIAN MẶC ĐỊNH CURRENT_TIMESTAMP TRÊN CẬP NHẬT CURRENT_TIMESTAMP
)

Các ví dụ sau giống với các ví dụ từ trang trước (PHP Chèn dữ liệu vào MySQL), ngoại trừ việc chúng tôi đã thêm một dòng mã để truy xuất ID của bản ghi được chèn lần cuối. Chúng tôi cũng lặp lại ID được chèn lần cuối