PDA

View Full Version : [PHP5 - MySql] Risultato di una query


demos88
04-03-2008, 14:23
Salve, sto sviluppando un sito utilizzando a man bassa PHP e per requisiti particolari, sono costretto a usare il php5. Ad un certo punto del codice mi trovo a dover inserire un nuovo record in una tabella la cui chiave primaria è ad autoincremento. Io eseguo l'inserimento, specificando solo dei parametri non unici e subito dopo la query di INSERT avrei bisogno di conoscere il valore della chiave associata al nuovo record senza dover fare un'altra query (per la quale non avrei un metodo di individuazione efficace dato che l'unico indice e' la chiave primaria stessa...).
Uso il php5 e per l'inserimento uso una funzione della libreria mysqli. Per caso mysqli_query mi ritorna un oggetto che posso usare per i miei scopi?

grazie

vizzz
04-03-2008, 14:32
Salve, sto sviluppando un sito utilizzando a man bassa PHP e per requisiti particolari, sono costretto a usare il php5. Ad un certo punto del codice mi trovo a dover inserire un nuovo record in una tabella la cui chiave primaria è ad autoincremento. Io eseguo l'inserimento, specificando solo dei parametri non unici e subito dopo la query di INSERT avrei bisogno di conoscere il valore della chiave associata al nuovo record senza dover fare un'altra query (per la quale non avrei un metodo di individuazione efficace dato che l'unico indice e' la chiave primaria stessa...).
Uso il php5 e per l'inserimento uso una funzione della libreria mysqli. Per caso mysqli_query mi ritorna un oggetto che posso usare per i miei scopi?

grazie

http://it2.php.net/manual/it/function.mysqli-insert-id.php

gugoXX
04-03-2008, 14:34
Salve, sto sviluppando un sito utilizzando a man bassa PHP e per requisiti particolari, sono costretto a usare il php5. Ad un certo punto del codice mi trovo a dover inserire un nuovo record in una tabella la cui chiave primaria è ad autoincremento. Io eseguo l'inserimento, specificando solo dei parametri non unici e subito dopo la query di INSERT avrei bisogno di conoscere il valore della chiave associata al nuovo record senza dover fare un'altra query (per la quale non avrei un metodo di individuazione efficace dato che l'unico indice e' la chiave primaria stessa...).
Uso il php5 e per l'inserimento uso una funzione della libreria mysqli. Per caso mysqli_query mi ritorna un oggetto che posso usare per i miei scopi?

grazie

tutto insieme, nello stesso statement.

INSERT INTO pippo(....) VALUES(....); SELECT LAST_INSERT_ID();

lanciata come ExecuteScalar() e non come ExecuteNonQuery(), come se fosse una query.

E' resistente a problemi di connessioni concorrenti.

The ID that was generated is maintained in the server on a per-connection basis. This means that the value returned by the function to a given client is the first AUTO_INCREMENT value generated for most recent statement affecting an AUTO_INCREMENT column by that client. This value cannot be affected by other clients, even if they generate AUTO_INCREMENT values of their own. This behavior ensures that each client can retrieve its own ID without concern for the activity of other clients, and without the need for locks or transactions.

cionci
04-03-2008, 16:19
E' resistente a problemi di connessioni concorrenti.
Interessante questa cosa, non la sapevo ;)

demos88
04-03-2008, 16:58
grazie mille a tutti, adesso lo provo! :D