Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Insert in più tabelle

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    2

    Insert in più tabelle

    Ciao a tutti,
    ho un problema con l'inserimento di dati in un database mysql.

    Ho un database con due tabelle con relazione 1 a molti

    Tabella Utenti:
    user_id (chiava primaria) auto increment
    nome
    cognome
    email
    password

    tabella indirizzi:
    indirizzo_id (autoincremet)
    user_id (chiave secondaria)
    tipo indirizzo (sede, spedizione ecc..)
    indirizzo
    cap
    città
    prov.

    dovrei fare due insert
    la prima per la tabella utenti
    e la seconda per la tabella indirizzi (inserendo la user_id legata alla tabella precedente)
    il tutto deve avvenire nell'arco di un'unica transazione!
    come faccio a recuperare l'id_user generato nella prima insert per inserirlo nel campo user_id della tabella indirizzi?

    Grazie

  2. #2
    insert into utenti

    la query e poi estrai la chiave appena inserita

    $user_id = mysql_insert_id();

    poi

    insert into indirizzi e nel value user_id metterai la var $user_id.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    2
    Grazie per la risposta.

    Mi veniva un dubbio! mysql_insert_id() estrae l'ultima id inserita. Nel caso di inseritmenti concorrenti non si potrebbe generare confusione con gli id? mi spiego non è possibile che per qualche frazione qualcuno mi prende la sequence?

    Grazie

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    No.
    mysql_insert_id() estrae l'ultimo id inserito con quella connessione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.