- Home
- Categorie
- Coding e Sistemistica
- PHP
- Recuperare ultimo ID inserito
-
Recuperare ultimo ID inserito
Ciao ragazzi,
con il codice seguente inserisco delle informazioni in una tabella nel mio database Mysql:[PHP]$sqlcmd = " INSERT INTO MenuSitoWeb VALUES ";$sqlcmd .= " (null,'$url','$target','$navigatore','$visibile','$sottomenu','$posizione','$ID_Login', '$idfotocopertina') ";mysql_query($sqlcmd);[/PHP]
Ho la necessità di recuperare l'ultimo ID inserito in questa specifica tabella per poterlo utilizzare subito dopo in un altro inserimento. Come faccio?
Ho provato ad utilizzare la funzione mysqli_insert_id(); seguendo il manuale di riferimento ma sicuramente la scrivo in modo scorretto:
[PHP]$prova = mysqli_insert_id($conn);echo $prova;[/PHP]
Dove $conn è la variabile che utilizzo per la connessione al database.
Quando utilizzo questo codice ricevo questa notifica:
Warning: mysqli_insert_id() expects parameter 1 to be mysqli
-
Non so se la soluzione che ho trovato è molto corretta.. però funziona!
[PHP]$sqlcmd_ultimoid = "SELECT ID FROM MenuSitoWeb ORDER BY ID DESC LIMIT 1";$risultato_ultimoid = mysql_query($sqlcmd_ultimoid);$row_ultimoid = mysql_fetch_array($risultato_ultimoid);$ULTIMOIDINSERITO = $row_ultimoid["ID"];[/PHP]
-
Ciao Nicole,
ecco a te la funzione allineata al tuo metodo di realizzazione query (quello con mysql_ per intenderci) che però ti invito a rivalutare in quanto deprecato ed in futuro rimosso da PHP.http://php.net/manual/en/function.mysql-insert-id.php
Ti consiglio di iniziare a studiare il passaggio della gestione del database a PDO.
Saluti
-
L'errore è semplicemente che non puoi mischiare mysql e mysqli.
Devi usare sempre o uno o l'altro in base a quello che hai usato nel file di connessione.
Usa mysql_insert_id() e vedrai che funziona.Però, come detto da Shad, sarebbe da usare sempre mysqli e dimenticarsi di mysql.