2016-05-11 12 views
-1

Dies ist, was ich versucht, und es funktioniert gut ..Wie bekomme ich einen Datensatz von mysql mit der zuletzt eingefügten ID?

$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"; 
} 

aber wenn ich die Abfrage mit

ersetzt
$sql = "SELECT * FROM patient where id = LAST_INSERT_ID()"; 

Es Rückkehr immer 0 Ergebnisse.

+4

last_insert_id funktioniert nur nach einer Abfrage einfügen.Wenn Sie einen Datensatz in eine Tabelle einfügen, dann können nur Sie last_insert_id erhalten. –

+1

Verwenden Sie stattdessen mysql_insert_id() –

+0

Verwenden Sie mysql_insert_id() ' – Nehal

Antwort

1

Um letzten (neuesten) Rekord vom Tisch zu bekommen, können Sie absteigend ORDER BY zusammen mit LIMIT: an allen in diesem Fall

SELECT * FROM patient ORDER BY id DESC LIMIT 0,1 

Sie nicht LAST_INSERT_ID brauchen. Außerdem können Sie bei gleichzeitigen Einfügungen nicht sicherstellen, dass die letzte Einfügung des Benutzers wirklich die letzte ist, indem Sie LAST_INSERT_ID verwenden.

+1

@mitksoft Danke es funktioniert gut und ich werde diese Logik von jetzt an verwenden ... –

Verwandte Themen