Php 如何使用最后插入的id从mysql获取记录?
这是我试过的,效果很好Php 如何使用最后插入的id从mysql获取记录?,php,mysql,Php,Mysql,这是我试过的,效果很好 $sql = "SELECT * FROM patient where id = (SELECT max(id) FROM patient)"; result = mysql_query($sql); if (mysql_num_rows($result) > 0) { // output data of each row while($row = mysql_fetch_assoc($result)) { $pati
$sql = "SELECT * FROM patient where id = (SELECT max(id) FROM patient)";
result = mysql_query($sql);
if (mysql_num_rows($result) > 0)
{
// output data of each row
while($row = mysql_fetch_assoc($result))
{
$patientid=$row["id"];
$patientname=$row["name"];
$patientrefer=$row["referto"];
$patientdisease=$row["disease"];
}
}
else
{
echo "0 results";
}
但是每当我用
$sql = "SELECT * FROM patient where id = LAST_INSERT_ID()";
它总是返回0
结果。为了从表中获取最后(最新)记录,您可以按和限制一起执行降序:
SELECT * FROM patient ORDER BY id DESC LIMIT 0,1
在这种情况下,您根本不需要LAST\u INSERT\u ID
。此外,对于并发插入,您无法通过使用last\u insert\u ID
last\u insert\u ID确保用户的最后一次插入确实是最新的。只有在插入查询之后,last\u insert\u ID才会起作用。无论何时将记录插入表,只有您才能获得last\u insert\u ID。使用mysql\u insert\u ID()而不是使用mysql\u insert\u ID()
停止使用不推荐的mysql.*
API。使用mysqli.*
或PDO
代替最后一个insert id才能工作,无论是在纯SQL还是在PHP中,您都需要先运行insert查询。那么只有你才能让它发挥作用