Mysqli_insert_id trả về 0

Nếu chúng tôi thực hiện thao tác 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

Nội dung chính Hiển thị

  • Nhận ID của bản ghi được chèn vào 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ụ (thủ tục MySQLI)
  • Làm cách nào để tìm ID cuối cùng trong MySQL?
  • Làm thế nào tôi có thể nhận được ID cuối cùng của tôi?
  • 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 thế nào tôi có thể nhận ID cuối cùng được thêm vào SQL?

Trong bảng "MyGuests", cột "ID" là trường Auto_increment

Tạo bảng MyGuests (ID int (6) Key chính auto_increment, FirstName varchar (30) không phải null, lastName varchar (30) không null, email varchar (50), reg_date time default at_timestamp when
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 vào cuối cùng. Chúng tôi cũng lặp lại ID cuối cùng được chèn vào

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

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDB";

// Tạo kết nối $Conn = new mysqli ($servername, $username, $password, $dbname); . ". $ Conn->Connect_error);}
$conn = new mysqli($servername, $username, $password, $dbname);
// Kiểm tra kết nối< . ". $conn->connect_error);
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$ sql = "chèn vào myguests (firstName, lastName, email) value ('john', 'doe', '' ')";
VALUES ('John'

if ($Conn->truy vấn ($sql) === true) {  . ID was insert the end of the end. ". $last_id;} other{  . ". $ SQL. "". $ Conn-> error;}
  $last_id = $conn->insert_id;
  echo "Đã tạo thành công bản ghi mới. ID được chèn lần cuối là. ". $last_id;
} else {
  echo "Lỗi. ". $sql. "
". $conn->lỗi;
}

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




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

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDB";

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

$ sql = "chèn vào myguests (firstName, lastName, email) value ('john', 'doe', '' ')";
VALUES ('John'

if ($Conn->truy vấn ($sql) === true) {  . ID was insert the end of the end. ". $last_id;} other{  . ". $ SQL. "". $ Conn-> error;}
  $last_id = mysqli_insert_id($conn);
  echo "Đã tạo thành công bản ghi mới. ID được chèn lần cuối là. ". $last_id;
} else {
  echo "Lỗi. ". $sql. "
". mysqli_error($conn);
}

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


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

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDBPDO";

// Tạo kết nối $Conn = new mysqli ($servername, $username, $password, $dbname); . ". $Conn->Connect_error);}
  $conn = new PDO("mysql. host=$servername;dbname=$dbname", $username, $password);
  // đặt chế độ lỗi PDO thành ngoại lệ
  $conn->setAttribute . ATTR_ERRMODE, PDO. ERRMODE_EXCEPTION);
  $sql = "CHÈN VÀO MyGuests (tên, họ, email)
  VALUES ('John', 'Doe', '')"; . ID được chèn lần cuối là. ". $last_id;
  // 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) value ('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.
Tìm hiểu thêm.

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

It has same as

$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 huy hiệu vàng55 huy hiệu bạc106 huy hiệu đồng

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

Mysqli_insert_id trả về 0

12

Có một chức năng để biết ID cuối cùng được thêm 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 sai lầm 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 bản khác nhau. ý tưởng tồi vì nó có thể dẫn đến sự cố nếu mã của bạn được sử dụng cùng lúc trong hai phiên khác nhau

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. 54 6 tháng 11, 2009 lúc 6. 54

Ragezragez Ragez

26. 4K11 Huy hiệu vàng67 Huy hiệu bạc76 Huy hiệu đồng11 huy hiệu vàng67 huy hiệu bạc76 huy hiệu đồng

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. 53 6 tháng 11, 2009 lúc 6. 53

x2. x2. x2.

9. 4365 huy hiệu vàng39 Huy hiệu bạc62 Huy hiệu đồng5 huy hiệu vàng39 huy hiệu bạc62 huy hiệu đồng

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 ta 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, nên chức năng của công cụ có thể_______05 chỉ hoạt động trên kết nối hiện tại đã được thêm vào. 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.
Vì bạn đang sử dụng MySQL làm cơ sở dữ liệu của mình nên 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 đã chèn.
PHP cũng cung cấp một chức năng cụ thể cho chức năng đó có tên 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.

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

Dlamblindlamblin dlamblin

43. 3K20 Huy hiệu vàng100 Huy hiệu bạc136 Huy hiệu đồng20 Huy hiệu vàng100 Huy hiệu bạc136 Huy hiệu đồng

Please try this thing will active good

$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. 18 10 tháng 1, 2017 lúc 8. 18

Sandhusandhu Sandhusandhu

7888 Huy hiệu bạc18 Huy hiệu đồng8 huy hiệu bạc18 huy hiệu đồng

1

Good will and menu -

________số 8

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

Hiteshhitesh Hitesh

1097 Huy hiệu đồng7 huy hiệu đồng

Để nhận ID được chèn vào cuối cùng trong Codeigniter sau khi thực hiện 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 cuối cùng

Bán tại

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

trong một dòng

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

Nén

1. 1293 huy hiệu vàng30 Huy hiệu bạc48 Huy hiệu đồng3 huy hiệu vàng30 huy hiệu bạc48 huy hiệu đồng

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

You can't use

$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 hiện truy vấn chèn, có nghĩa là trong cùng một phiên bản 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

Jonas Séc

11. 8k6 Huy hiệu vàng43 Huy hiệu bạc64 Huy hiệu đồng6 Huy hiệu vàng43 Huy hiệu bạc64 Huy hiệu đồng

Đã trả lời ngày 6 tháng 11 năm 2009 lúc 9. 51 6 tháng 11, 2009 lúc 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
mysql_query('INSERT INTO FOO(a) VALUES(\'b\')');
$id = mysql_insert_id();
4

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

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

Smern

18. 3K21 Huy hiệu vàng68 Huy hiệu bạc89 Huy hiệu đồng21 huy hiệu vàng68 huy hiệu bạc89 huy hiệu đồng

Đã trả ngày 1 tháng 7 năm 2013 lúc 13. 49 Ngày 1 tháng 7 năm 2013 lúc 13. 49

Rahulrahul Rahul

Huy hiệu 451 Đồng1 huy hiệu đồng

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ụ

Use mysqli. $ chèn_id. mysqli. $insert_id

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

Use PDO. Chèn lần cuối. PDO. LastInsertId

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

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

Gỉ sét Gỉ sét

8. 12410 Huy hiệu vàng54 Huy hiệu bạc73 Huy hiệu đồng10 huy hiệu vàng54 huy hiệu bạc73 huy hiệu đồng

Lưu ý. Nếu bạn thực hiện nhiều thao tác chèn với một lệnh mysqli. insert_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. insert_id will be 1 not 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 ý nghĩa tối thiểu

Jimmy Kane

15. 5k10 Huy hiệu vàng82 Huy hiệu bạc113 Huy hiệu đồng10 huy hiệu vàng82 huy hiệu bạc113 huy hiệu đồng

Đã trả ngày 14 tháng 1 năm 2013 lúc 19. 42 14 tháng 1, 2013 lúc 19. 42

BARTONLPBARTONLP bartonlp

1231 Huy hiệu bạc6 Huy hiệu đồng1 huy hiệu bạc6 huy hiệu đồng

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

$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

That is it

Đã trả lời ngày 29 tháng 8 năm 2014 lúc 12. 34 29 Tháng tám 2014 lúc 12. 34

Syjustsyjust syjust

3172 Huy hiệu bạc4 Huy hiệu đồng2 huy hiệu bạc4 huy hiệu đồng

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 ____85s. 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. 01 13 Tháng tư 2013 lúc 9. 01

Blitzblitz BlitZ

11. 9k3 Huy hiệu vàng49 Huy hiệu bạc64 Huy hiệu đồng3 Huy hiệu vàng49 Huy hiệu bạc64 Huy hiệu đồng

Sử dụng mysqli vì mysql đang thiếu mysqli vì mysql đang ngừng hoạt độ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);
1

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

Poorna Raopoorna Rao Poorna Rao

3354 Huy hiệu bạc20 Huy hiệu Đồng4 huy hiệu bạc20 huy hiệu đồng

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 thêm vào cuối cùng của kết nối hiện tại, vì vậy nếu bạn 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

Sao Chức Nữ

26. 6K27 Huy hiệu vàng88 Huy hiệu bạc95 Huy hiệu Đồng27 huy hiệu vàng88 huy hiệu bạc95 huy hiệu đồng

Đã trả ngày 27 tháng 1 năm 2018 lúc 20. 07 27 Tháng 1, 2018 lúc 20. 07

2

Làm cách nào để tìm ID cuối cùng trong MySQL?

Hàm mysql last_insert_id () 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. Hàm LAST_INSERT_ID() 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 bảng.

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

Cách nhận ID được chèn vào cuối cùng của bảng MySQL bằng Last_insert_id(), chúng tôi sẽ sử dụng hàm Last_insert_id() để nhận ID được chèn vào cuối cùng. Last_insert_id() Hàm MySQL trả về giá trị không dấu lớn cho một câu lệnh chèn vào cột tự động_increment. sử dụng LAST_INSERT_ID() Chúng ta 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à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ề ID chính xác của hàng được cập nhật cuối cùng. Tôi đang sử dụng chức năng này trong các dự án của mình cho cùng một mục đích. Bạn có thể sử dụng nó cả trong truy vấn đồng bộ hoặc không đồng bộ. mysqli_insert_id($link) sẽ trả về chính xác id của hàng được cập nhật lần cuối. Tôi đang sử dụng chức năng này trong các dự án của mình cho cùng một mục đích. Bạn có thể sử dụng nó trong cả truy vấn đồng bộ hoặc không đồng bộ.

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

Indent_cien () sẽ cung cấp cho bạn giá trị nhận dạng cuối cùng được thêm vào một bảng cụ thể từ bất kỳ phạm vi nào, bởi bất kỳ người dùng nào [email được bảo vệ]@ Nhận dạng cung cấp cho bạn giá trị nhận dạng cuối cùng