php在插入后会在同一连接中获得更新的id(auto_increment)吗?还是必须重新连接



我有php:

$con=mysqli_connect("","","","");

$sql="INSERT INTO xxx (xxxx, yyyy, zzzz)
VALUES
('$_POST[A]','$B','$C')";

$result = mysqli_query($con,"SELECT id FROM xxx ORDER BY id DESC");
$row = mysqli_fetch_array($result);

这个$id是在插入数据之前还是之后?

$id = $row['id'];
mysqli_close($con);

无论连接如何,自动递增工作。如果您有1000个客户端同时连接所有插入,则可以保证自动递增ID会如您所期望的那样递增。这一切都很美好,像原子一样。

Php提供了最后一个插入id函数。创建的自动递增id在mysql的响应数据包中发送,因此无需像您所做的那样查询最后一个id。

请参阅http://us3.php.net/manual/en/mysqli.insert-id.php

尝试使用以下代码

$qry= "SELECT LAST_INSERT_ID() AS insert_id";
$c = mysqli_fetch_assoc($qry);
echo $c['insert_id'];

当您在之后检索它时,它将是后面的一个,不需要重新连接。

请注意:如果另一个客户更新信息,则结果将不正确。

最新更新