Recentemente mi sono imbattuto in un problema in cui dovevo essere in grado di prendere l'ultimo ID di una query che ho inserito in una pagina. Il processo è stato abbastanza semplice, ma mi piacerebbe avere una certa rassicurazione su come il processo è fatto. Ecco come il mio codice è:Quanto è efficiente Last_insert_id?
$query30 = $db->query("INSERT `mybb_quickexample` SET `player1` = '".$row19[username]."', `player2` = '".$row18[username]."', `games` = '".$numberofgames."'")or die( mysqli_error());
Come potete vedere ho appena inserito qualcosa nel mybb_quickexample, che poi genera un ID. Ora nel codice direttamente sotto, cerco di individuare l'ID.
$mmid = $db->insert_id();
foreach($_POST['optiontitle'] as $val){
$val = $db->escape_string($val); //
echo $val;
$query30 = $db->query("INSERT `mybb_quickexample2` SET `gid` = '".$id."', `mid` = '".$mmid."', `optiontitle` = 'OPTION TITLE', `option1` = '$val'")or die( mysqli_error());
}
Come potete vedere, prende l'ID recente e lo inserisce nella nuova tabella. Permettendo a questi 2 tavoli di corrispondersi l'un l'altro più tardi quando ne ho bisogno.
Tuttavia, insert_last_id acquisisce l'ultima riga inserita nel database o l'ultima riga inserita nel database nella pagina? Ora non sono del tutto sicuro dei meccanismi alla base di questo, ma lo chiedo perché, e se una persona dovesse caricare questa pagina nello stesso momento in cui un'altra persona? Ci sarebbero ID ineguagliabili o il codice funzionerebbe ancora?
Possibile duplicato di http://kera.name/articles/2011/08/one-less-bug-to-worry-about/ –
@LightnessRacesinOrbit Questo non è un post stackoverflow. _Possibile duplicato_? – rpax
@rpax:: whoosh: –