- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- mysql insert in due tabelle relazionate 1:1
-
Ciao robco,
se devi realizzare il tutto in php-mysql c'è la funzione che ti restituisce esattamente con quale ID è stato inserito, operazione sicuramente più corretta per evitare quel tipo di problema.
-
@Thedarkita said:
Ciao robco,
se devi realizzare il tutto in php-mysql c'è la funzione che ti restituisce esattamente con quale ID è stato inserito, operazione sicuramente più corretta per evitare quel tipo di problema.
ciao, grazie per la risposta
bhè la funzione sarebbe last_isert_id() (se ce n'è un'altra non lo so ) ma il punto non è come determinare tale risorsa, ma se sia giusto o meno agire come ho descritto nel precedente messaggio.
grazie
-
Insomma, il punto non è esattamente quello. Perchè l'unico problema reale in questi casi è proprio quello di recuperare l'id corretto.
-
@Thedarkita said:
Insomma, il punto non è esattamente quello. Perchè l'unico problema reale in questi casi è proprio quello di recuperare l'id corretto.
...quindi come si agisce in questi casi?
grazie
-
Come hai detto tu, l'importante è utilizzare last_insert_id() o la funzione php fatta appositamente per queste cose, che se utilizzi mysqli trovi qui:
http://php.net/manual/en/mysqli.insert-id.php
-
ok, infatti volevo sapere se fosse giusto procedere in questo modo:
- insert su A
2 recupero last_id - insert su B di last_id calcolato in 2
sò già come si fa, volevo sapere se il procedimento è giusto o se c'è qualcosa di più performante e\o sicuro
grazie per la disponibilità
- insert su A
-
Si chiamano "transazioni" ... Commit, rollback ... Cerca su php net
-
allora il mio procedimento è errato e necessita dei metodi commit ? ?
...vorrei capire come muovermi....
-
No, non è errato... le transazioni sono il TOP per assicurarsi la coerenza dei dati, nonché la sicurezza di poter annullare eventuali operazioni andate male (ROLLBACK), ma uno deve sempre bilanciare importanza del progetto e tempo che ci si può spendere.
Se sei sicuro di non ritrovarti migliaia di persone a fare simultaneamente il submit di quel form, mysql_insert_id() va più che bene. Per usare le transazioni devi avere tabelle con motore InnoDB, che di solito viene utilizzato per tabelle che devono contenere un enorme numero di record.
-
@Francesco Di Caprio said:
No, non è errato... le transazioni sono il TOP per assicurarsi la coerenza dei dati, nonché la sicurezza di poter annullare eventuali operazioni andate male (ROLLBACK), ma uno deve sempre bilanciare importanza del progetto e tempo che ci si può spendere.
Se sei sicuro di non ritrovarti migliaia di persone a fare simultaneamente il submit di quel form, mysql_insert_id() va più che bene. Per usare le transazioni devi avere tabelle con motore InnoDB, che di solito viene utilizzato per tabelle che devono contenere un enorme numero di record.
ok, grzie, diciamo che ora la situazione è più chiara
a dir il vero non c'è il rischio di molte insert simultanee, magari decido se utilizzare o meno le transazioni, che non ho mai fatto prima d'ora (se avete un esempio, link, grazie 1000)
Riguardo il db posso limitarmi al myisam.