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查询。那么只有你才能让它发挥作用