Vill att mitt PHP script skall kunna visa vilket ID en viss nyss insatt post i databasen fick. Nu gör jag så att jag efter inserten hämtar upp den posten genom att i WHERE satsen ange de värden som just sattes in och sorterar på ID DESC.. men det känns som om det borde finnas något inbyggt sett.. sökte runt lite men hittade inget...
Hm.. kom iofs att tänka på en sak.. säg att man har ett stort tryck på databasen å SQL frågorna lägger sig på kö, så kör en användare en fråga, sedan så tillåter dbhs:en att en annan användare kommer mellan å kör en fråga. Om den första användaren då använder last_insert_id() så får ju han upp det som den andra användaren lade in. Eller är sånt kanske löst på något smart sätt redan?
Hm.. oki, det funkar typ... hittade lite kod här på WF som jag implementerade å ändrade lite i... men då jag kör last_insert_id(id) så returnerar mysql alla raderna i tabellen... koden nedan gör så att jag får den sista, men det känns som om jag har gjort fel någonstans... :r
$query = "SELECT last_insert_id(id) FROM tbl_event ORDER BY id DESC";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
$id = $row[0];
Om man kör med BIGINT på autoinc-fältet så funkar inte mysql_insert_id() som det ska. Då ska man använda selst last_insert_id(), annars är mysql_insert_id nog det bästa alternativet