我有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'];
当您在之后检索它时,它将是后面的一个,不需要重新连接。
请注意:如果另一个客户更新信息,则结果将不正确。