Hướng dẫn how can i get last inserted id after insert query in php? - Làm cách nào để lấy id được chèn lần cuối sau khi chèn truy vấn trong php?


Nhận ID của bản ghi được chèn cuối cùng

Nếu chúng tôi thực hiện chèn hoặc cập nhật trên bảng với trường Auto_increment, chúng tôi có thể nhận ID của bản ghi được chèn/cập nhật cuối cùng ngay lập tức.

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, FirstName varchar (30) không phải null, lastName varchar (30) không null, email varchar (50), reg_date dấu thời gian mặc định hiện tại_timestamp khi cập nhật curray_timestamp)
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

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

Ví dụ (hướng đối tượng mysqli) theo định hướng đối tượng)

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Tạo kết nối $ Conn = new mysqli ($ servername, $ username, $ password, $ dbname); // kiểm tra kết nối nếu ($ Conn-> Connect_error) & nbsp; {& nbsp; chết ("Kết nối không thành công:". $ Conn-> Connect_error);}
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$ sql = "chèn vào myguests (firstName, lastName, email) giá trị ('john', 'doe', '' ')";
VALUES ('John', 'Doe', '')";

if ($ Conn-> truy vấn ($ sql) === true) {& nbsp; $ last_id = $ Conn-> chèn_id; & nbsp; echo "bản ghi mới được tạo thành công. ID được chèn cuối cùng là:". $ last_id;} other {& nbsp; Echo "Lỗi:". $ SQL. "". $ Conn-> lỗi;}
  $last_id = $conn->insert_id;
  echo "New record created successfully. Last inserted ID is: " . $last_id;
} else {
  echo "Error: " . $sql . "
" . $conn->error;
}

$ Conn-> đóng (); ?>
?>




Ví dụ (thủ tục MySQLI)

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Tạo kết nối $ Conn = new mysqli ($ servername, $ username, $ password, $ dbname); // kiểm tra kết nối nếu ($ Conn-> Connect_error) & nbsp; {& nbsp; chết ("Kết nối không thành công:". $ Conn-> Connect_error);}
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

$ sql = "chèn vào myguests (firstName, lastName, email) giá trị ('john', 'doe', '' ')";
VALUES ('John', 'Doe', '')";

if ($ Conn-> truy vấn ($ sql) === true) {& nbsp; $ last_id = $ Conn-> chèn_id; & nbsp; echo "bản ghi mới được tạo thành công. ID được chèn cuối cùng là:". $ last_id;} other {& nbsp; Echo "Lỗi:". $ SQL. "". $ Conn-> lỗi;}
  $last_id = mysqli_insert_id($conn);
  echo "New record created successfully. Last inserted ID is: " . $last_id;
} else {
  echo "Error: " . $sql . "
" . mysqli_error($conn);
}

$ Conn-> đóng (); ?>
?>


Ví dụ (thủ tục MySQLI)

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

// Tạo kết nối $ Conn = new mysqli ($ servername, $ username, $ password, $ dbname); // kiểm tra kết nối nếu ($ Conn-> Connect_error) & nbsp; {& nbsp; chết ("Kết nối không thành công:". $ Conn-> Connect_error);}
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $sql = "INSERT INTO MyGuests (firstname, lastname, email)
  VALUES ('John', 'Doe', '')";
  // use exec() because no results are returned
  $conn->exec($sql);
  $last_id = $conn->lastInsertId();
  echo "New record created successfully. Last inserted ID is: " . $last_id;
} catch(PDOException $e) {
  echo $sql . "
" . $e->getMessage();
}

$ sql = "chèn vào myguests (firstName, lastName, email) giá trị ('john', 'doe', '' ')";
?>




102

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một bảng mà dữ liệu mới thường được chèn. Tôi cần có được ID cuối cùng của bảng. Tôi có thể làm cái này như thế nào?

Nó có giống với

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
3 không?

Trig

9.8346 huy hiệu vàng55 Huy hiệu bạc106 Huy hiệu đồng6 gold badges55 silver badges106 bronze badges

Đã hỏi ngày 6 tháng 11 năm 2009 lúc 6:49Nov 6, 2009 at 6:49

Hướng dẫn how can i get last inserted id after insert query in php? - Làm cách nào để lấy id được chèn lần cuối sau khi chèn truy vấn trong php?

12

Có một chức năng để biết ID cuối cùng được chèn vào kết nối hiện tại là gì

mysql_query('INSERT INTO FOO(a) VALUES(\'b\')');
$id = mysql_insert_id();

Cộng với việc sử dụng Max là một ý tưởng tồi vì nó có thể dẫn đến các vấn đề nếu mã của bạn được sử dụng cùng một lúc trong hai phiên khác nhau.bad idea because it could lead to problems if your code is used at same time in two different sessions.

Chức năng đó được gọi là mysql_insert_id

Đã trả lời ngày 6 tháng 11 năm 2009 lúc 6:54Nov 6, 2009 at 6:54

RagezragezRageZ

26.4K11 Huy hiệu vàng67 Huy hiệu bạc76 Huy hiệu đồng11 gold badges67 silver badges76 bronze badges

2

Được rồi. Ngoài ra, bạn có thể sử dụng last_insert_id ()

Đã trả lời ngày 6 tháng 11 năm 2009 lúc 6:53Nov 6, 2009 at 6:53

x2.x2.x2.

9.4265 huy hiệu vàng39 Huy hiệu bạc62 Huy hiệu đồng5 gold badges39 silver badges62 bronze badges

1

Những gì bạn đã viết sẽ giúp bạn có được

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
4 lớn nhất cho rằng chúng là duy nhất và tự động được bảo vệ sẽ ổn khi cho rằng bạn vẫn ổn khi mời các vấn đề đồng thời. Vì bạn đang sử dụng MySQL làm cơ sở dữ liệu của mình, có chức năng cụ thể
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
5 chỉ hoạt động trên kết nối hiện tại đã được chèn. PHP cung cấp một chức năng cụ thể cho cái đó được gọi là
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
6.
Since you're using MySQL as your database, there is the specific function
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
5 which only works on the current connection that did the insert.
PHP offers a specific function for that too called
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
6.

Đã trả lời ngày 6 tháng 11 năm 2009 lúc 6:51Nov 6, 2009 at 6:51

Dlamblindlamblindlamblin

43.3K20 Huy hiệu vàng100 Huy hiệu bạc136 Huy hiệu đồng20 gold badges100 silver badges136 bronze badges

Hãy thử điều này sẽ hoạt động tốt:

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);

Đã trả lời ngày 10 tháng 1 năm 2017 lúc 8:18Jan 10, 2017 at 8:18

SandhusandhuSandhu

7988 Huy hiệu bạc18 Huy hiệu đồng8 silver badges18 bronze badges

1

Sạch sẽ và đơn giản -

$selectquery="SELECT id FROM tableName ORDER BY id DESC LIMIT 1";
$result = $mysqli->query($selectquery);
$row = $result->fetch_assoc();
echo $row['id'];

Đã trả lời ngày 18 tháng 6 năm 2017 lúc 7:52Jun 18, 2017 at 7:52

HiteshhiteshHitesh

1097 Huy hiệu đồng7 bronze badges

Để nhận ID được chèn cuối cùng trong Codeigniter sau khi thực thi truy vấn chèn, chỉ cần sử dụng một hàm gọi là

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
7 trên cơ sở dữ liệu, nó sẽ trả về ID chèn cuối cùng

Ex:

$this->db->insert('mytable',$data);
echo $this->db->insert_id(); //returns last inserted id

trong một dòng

echo $this->db->insert('mytable',$data)->insert_id();

Hướng dẫn how can i get last inserted id after insert query in php? - Làm cách nào để lấy id được chèn lần cuối sau khi chèn truy vấn trong php?

Nhện

1.1293 huy hiệu vàng30 Huy hiệu bạc48 Huy hiệu đồng3 gold badges30 silver badges48 bronze badges

Đã trả lời ngày 6 tháng 4 năm 2015 lúc 12:10Apr 6, 2015 at 12:10

Bạn có thể sử dụng

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
8, nhưng có một lưu ý cụ thể về việc sử dụng nó, bạn phải gọi nó sau khi thực thi truy vấn chèn, có nghĩa là trong cùng một phiên tập lệnh. Nếu bạn sử dụng nó nếu không nó sẽ không hoạt động chính xác.

Hướng dẫn how can i get last inserted id after insert query in php? - Làm cách nào để lấy id được chèn lần cuối sau khi chèn truy vấn trong php?

Jonas Séc

11.8k6 Huy hiệu vàng43 Huy hiệu bạc64 Huy hiệu đồng6 gold badges43 silver badges64 bronze badges

Đã trả lời ngày 6 tháng 11 năm 2009 lúc 9:51Nov 6, 2009 at 9:51

Bạn có thể nhận ID được chèn mới nhất bằng hàm PHP được xây dựng

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
9

$id = mysql_insert_id();

bạn cũng nhận được ID mới nhất bằng cách

$id = last_insert_id();

Hướng dẫn how can i get last inserted id after insert query in php? - Làm cách nào để lấy id được chèn lần cuối sau khi chèn truy vấn trong php?

Smern

18.3K21 Huy hiệu vàng68 Huy hiệu bạc89 Huy hiệu đồng21 gold badges68 silver badges89 bronze badges

Đã trả lời ngày 1 tháng 7 năm 2013 lúc 13:49Jul 1, 2013 at 13:49

RahulrahulRahul

Huy hiệu 451 Đồng1 bronze badge

4

Thật buồn khi không thấy bất kỳ câu trả lời nào với một ví dụ.

Sử dụng mysqli :: $ insert_id:Mysqli::$insert_id:

$sql="INSERT INTO table (col1, col2, col3) VALUES (val1, val2, val3)";
$mysqli->query($sql);
$last_inserted_id=$mysqli->insert_id; // returns last ID

Sử dụng PDO :: LastInsertid:PDO::lastInsertId:

$sql="INSERT INTO table (col1, col2, col3) VALUES (val1, val2, val3)";
$database->query($sql);
$last_inserted_id=$database->lastInsertId(); // returns last ID

Đã trả lời ngày 21 tháng 4 năm 2016 lúc 13:41Apr 21, 2016 at 13:41

RustyrustyRusty

8.13410 Huy hiệu vàng54 Huy hiệu bạc73 Huy hiệu đồng10 gold badges54 silver badges73 bronze badges

Lưu ý: Nếu bạn thực hiện nhiều chèn với một câu lệnh mysqli :: chèn_id sẽ không đúng.

Cái bàn:

$selectquery="SELECT id FROM tableName ORDER BY id DESC LIMIT 1";
$result = $mysqli->query($selectquery);
$row = $result->fetch_assoc();
echo $row['id'];
0

Bây giờ nếu bạn làm:

$selectquery="SELECT id FROM tableName ORDER BY id DESC LIMIT 1";
$result = $mysqli->query($selectquery);
$row = $result->fetch_assoc();
echo $row['id'];
1

MySQLI :: chèn_id sẽ là 1 không 3.

Để có được giá trị chính xác, hãy làm:

$selectquery="SELECT id FROM tableName ORDER BY id DESC LIMIT 1";
$result = $mysqli->query($selectquery);
$row = $result->fetch_assoc();
echo $row['id'];
2

Điều này đã được tài liệu nhưng nó là một chút tối nghĩa.

Jimmy Kane

15.6K10 Huy hiệu vàng82 Huy hiệu bạc113 Huy hiệu đồng10 gold badges82 silver badges113 bronze badges

Đã trả lời ngày 14 tháng 1 năm 2013 lúc 19:42Jan 14, 2013 at 19:42

BARTONLPBARTONLPbartonlp

1231 Huy hiệu bạc6 Huy hiệu đồng1 silver badge6 bronze badges

Tôi thích sử dụng cú pháp MySQL thuần túy để nhận ID tự động_increment cuối cùng của bảng tôi muốn.

PHP mysql_insert_id () và mysql last_insert_id () chỉ cung cấp ID giao dịch cuối cùng.

Nếu bạn muốn id tự động được đặt tự động cuối cùng của bất kỳ bảng nào trong lược đồ của bạn (không chỉ giao dịch cuối cùng), bạn có thể sử dụng truy vấn này

SELECT AUTO_INCREMENT FROM information_schema.TABLES
    WHERE TABLE_SCHEMA = 'my_database' 
    AND TABLE_NAME = 'my_table_name';

Đó là nó.

Đã trả lời ngày 29 tháng 8 năm 2014 lúc 12:34Aug 29, 2014 at 12:34

Syjustsyjustsyjust

3172 Huy hiệu bạc4 Huy hiệu đồng2 silver badges4 bronze badges

1

Sử dụng giao dịch

$selectquery="SELECT id FROM tableName ORDER BY id DESC LIMIT 1";
$result = $mysqli->query($selectquery);
$row = $result->fetch_assoc();
echo $row['id'];
3 đôi khi tôi không thể nhận được
$selectquery="SELECT id FROM tableName ORDER BY id DESC LIMIT 1";
$result = $mysqli->query($selectquery);
$row = $result->fetch_assoc();
echo $row['id'];
4, bởi vì nó đã trả lại 0. Đặc biệt nếu tôi đang sử dụng các quy trình được lưu trữ, thực hiện các
$selectquery="SELECT id FROM tableName ORDER BY id DESC LIMIT 1";
$result = $mysqli->query($selectquery);
$row = $result->fetch_assoc();
echo $row['id'];
5s. Vì vậy, có một cách khác trong giao dịch:

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
0

Đã trả lời ngày 13 tháng 4 năm 2013 lúc 9:01Apr 13, 2013 at 9:01

Hướng dẫn how can i get last inserted id after insert query in php? - Làm cách nào để lấy id được chèn lần cuối sau khi chèn truy vấn trong php?

BlitzblitzBlitZ

11.9k3 Huy hiệu vàng49 Huy hiệu bạc64 Huy hiệu đồng3 gold badges49 silver badges64 bronze badges

Sử dụng mysqli vì mysql đang thiếumysqli as mysql is depricating

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
1

Đã trả lời ngày 28 tháng 5 năm 2017 lúc 4:43May 28, 2017 at 4:43

Hướng dẫn how can i get last inserted id after insert query in php? - Làm cách nào để lấy id được chèn lần cuối sau khi chèn truy vấn trong php?

Poorna Raopoorna RaoPoorna Rao

3354 Huy hiệu bạc20 Huy hiệu Đồng4 silver badges20 bronze badges

Tôi đã thử

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "INSERT blah blah blah...";
$result = mysqli_query($link, $query);

echo mysqli_insert_id($link);
2

Điều này trả về ID được chèn cuối cùng của kết nối hiện tại, vì vậy nếu bạn đang quản lý các kết nối của mình đúng cách, điều này sẽ hoạt động. Làm việc cho tôi ít nhất.

Hướng dẫn how can i get last inserted id after insert query in php? - Làm cách nào để lấy id được chèn lần cuối sau khi chèn truy vấn trong php?

Sao Chức Nữ

26.6K27 Huy hiệu vàng88 Huy hiệu bạc95 Huy hiệu Đồng27 gold badges88 silver badges95 bronze badges

Đã trả lời ngày 27 tháng 1 năm 2018 lúc 20:07Jan 27, 2018 at 20:07

2

Làm thế nào tôi có thể nhận được bản ghi được chèn cuối cùng trong SQL bằng PHP?

Nếu bạn đang tự động_increment với cột, thì bạn có thể sử dụng phương thức last_insert_id ().Phương pháp này nhận được ID của bản ghi được chèn cuối cùng trong MySQL.last_insert_id() method. This method gets the ID of the last inserted record in MySQL.

Làm cách nào để nhận được ID cuối cùng của bảng MySQL trong PHP?

Nhận ID của bản ghi chèn cuối cùng..
Ví dụ (hướng đối tượng mysqli) theo định hướng đối tượng)
Ví dụ (thủ tục MySQLI)
Ví dụ (PDO)

Làm cách nào để nhận ID cuối cùng được chèn vào truy vấn SQL?

Hàm Last_insert_id () trả về id auto_increment của hàng cuối cùng đã được chèn hoặc cập nhật trong một bảng.LAST_INSERT_ID() function returns the AUTO_INCREMENT id of the last row that has been inserted or updated in a table.

Làm thế nào tôi có thể nhận được ID cập nhật cuối cùng trong PHP?

Làm cách nào để nhận ID của hàng cập nhật cuối cùng trong MySQL bằng PHP?mysqli_insert_id ($ link) sẽ trả về chính xác ID của hàng được cập nhật cuối cùng.mysqli_insert_id($link) will return exactly the id of last updated row.