In pratica io ho una pagina di registrazione utente, dove nella prima bisogna inserire username e password. Questi valori vengono passati alla pagina successiva in cui poi si inseriscono gli altri dati del profilo, verificando al contempo lo username non esista già nel database. Finito l'inserimento di questi dati nel form, questi dati vengono passati ad un'altra pagina (di cui sotto ce ne è una parte) in cui vengono inseriti effettivamente nel database. Come posso migliorare questa parte?
Ho riscontrato alcune problematiche:
- siccome all'inizio avevo un problema che non prendeva la matricola (che poi ho risolto), nel database l'inserimento andava comunque a buon fine, cosa che però non doveva succedere, dato che il campo Matricola è una primary key (insieme ad username, che fa riferimento alla tabella UTENTE). Non doveva sollevarmi un errore o qualcosa del genere?
- l'altro dilemma che ho è questo: l'inserimento avviene in due tabelle diverse (UTENTE e PROFILOUTENTE) che sono però strettamente collegate in quanto il profilo appartiene ad un utente, tuttavia non so se c'è modo di fare uno statement unico che comprende l'inserimento in due tabelle. Questo per evitare che se per caso la procedura si interrompe mi ritrovo magari con un utente senza profilo o cose del genere.
Grazie e scusate la lunghezza!!
Codice PHP:
$stm = $dbConn->prepare("INSERT INTO UTENTE (Username, Password) VALUES (?, ?)");
$stm->bindParam(1, $username);
$stm->bindParam(2, $password);
$stm->execute();
$stm2 = $dbConn->prepare("INSERT INTO PROFILOUTENTE (Matricola, Utente, Nome, Cognome, AnnoN, LuogoN, Telefono, Foto, Corso) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stm2->bindParam(1, $matricola);
$stm2->bindParam(2, $username);
$stm2->bindParam(3, $nome);
$stm2->bindParam(4, $cognome);
$stm2->bindParam(5, $annoN);
$stm2->bindParam(6, $luogoN);
$stm2->bindParam(7, $telefono);
$stm2->bindParam(8, $foto);
$stm2->bindParam(9, $corso);
$stm2->execute();