Concetto Chiave: Il segnaposto (es.
:u) è come un indirizzo su una busta; l'array dentro execute è il postino che sa cosa metterci dentro.
1. Come avviene l'associazione?
Il collegamento avviene nel momento in cui chiamiamo $stmt->execute(). All'interno delle parentesi, passiamo un array associativo.
Osserva attentamente questo schema:
| Segnaposto nella Query | Chiave nell'array di Execute | Variabile PHP (Valore) |
|---|---|---|
:u |
'u' |
$user |
:e |
'e' |
$email |
:p |
'p' |
$pass_sicura |
2. Il codice nel dettaglio
Ecco come scriviamo il comando completo. Nota come le "etichette" (senza i due punti) diventano le chiavi dell'array:
// 1. Definiamo la struttura (lo scaffale con le etichette)
$sql = "INSERT INTO utenti (username, email) VALUES (:u, :e)";
$stmt = $pdo->prepare($sql);
// 2. Eseguiamo l'associazione (mettiamo gli oggetti negli scaffali)
$stmt->execute([
'u' => $user, // Associa il valore di $user al segnaposto :u
'e' => $email // Associa il valore di $email al segnaposto :e
]);
1 Regole importanti
- I nomi devono coincidere: Se nella query scrivi
:username, nell'array devi scrivere'username' => .... - L'ordine non conta: Essendo un array associativo, potresti mettere la email prima dello username, PDO li accoppierà correttamente usando il nome dell'etichetta.
- I due punti: Dentro l'array
execute, i due punti:davanti alla chiave sono opzionali (si possono omettere per pulizia).
2 Esercitazione: Cambio Nomi
Per verificare se hai capito, prova a modificare la query nel tuo file registrazione.php usando nomi più lunghi e chiari (es. :nome_utente invece di :u).
Domanda: Cosa devi cambiare obbligatoriamente dentro la funzione execute() affinché il codice continui a funzionare?