Istruzioni preparate
Metta in sicurezza le query del database con istruzioni preparate
Istruzioni preparate è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 5 di 6. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 6 lezioni in totale.
Panoramica sulle istruzioni preparate
Istruzioni preparate
Benvenuto alla prossima lezione! In questa lezione imparerà a conoscere le istruzioni preparate e come rendono sicure ed efficienti le interazioni con il database. Iniziamo!

Che cosa sono le istruzioni preparate?
Che cosa sono le istruzioni preparate?
Le istruzioni preparate sono una funzionalità dei sistemi di gestione dei database che consente di eseguire query SQL in modo sicuro ed efficiente. Separano il codice SQL dai dati, prevenendo gli attacchi di SQL injection.
Esempio: utilizzo di segnaposto (:name, :email) invece di inserire direttamente l'input dell'utente nella query.
Perché utilizzare le istruzioni preparate?
Perché utilizzare le istruzioni preparate?
Le istruzioni preparate offrono diversi vantaggi:
- Sicurezza: prevengono gli attacchi di SQL injection eseguendo l'escape degli input dell'utente.
- Efficienza: consentono di riutilizzare la stessa istruzione con dati diversi, riducendo il tempo necessario per l'analisi della query.
- Manutenibilità: rendono il codice più facile da leggere e sottoporre a debug.
Punto chiave: utilizzi sempre istruzioni preparate quando interagisce con dati forniti dall'utente.
Creazione di un'istruzione preparata
Creazione di un'istruzione preparata
Per creare un'istruzione preparata, segua questi passaggi:
- Scriva la query SQL con i segnaposto.
- Prepari la query utilizzando la connessione al database.
- Associ i valori ai segnaposto.
- Esegua l'istruzione.
Esempio:
Suggerimento: utilizzi array associativi per associare facilmente i valori.
<?php
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->execute(["name" => "Alice", "email" => "alice@mail.com"]);
?>Associazione dei valori
Associazione dei valori
Utilizzi i metodi bindParam() o bindValue() per associare i valori ai segnaposto. Ecco un esempio:
<?php
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->bindParam(":name", $name);
$stmt->bindParam(":email", $email);
$name = "Bob";
$email = "bob@mail.com";
$stmt->execute();
?>
Utilizzo delle istruzioni preparate per le query SELECT
Utilizzo delle istruzioni preparate per le query SELECT
Le istruzioni preparate funzionano con tutti i tipi di query SQL, inclusa SELECT. Ecco un esempio:
Suggerimento: utilizzi fetchAll() per recuperare più righe.
<?php
$sql = "SELECT * FROM users WHERE name = :name";
$stmt = $pdo->prepare($sql);
$stmt->execute(["name" => "Alice"]);
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo "Name: " . $result["name"] . ", Email: " . $result["email"];
?>
Riutilizzo delle istruzioni preparate
Riutilizzo delle istruzioni preparate
Le istruzioni preparate possono essere riutilizzate con valori diversi, migliorando l'efficienza. Ecco un esempio:
<?php
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$users = [
["name" => "Charlie", "email" => "charlie@mail.com"],
["name" => "Dave", "email" => "dave@mail.com"]
];
foreach ($users as $user) {
$stmt->execute($user);
}
echo "Multiple records inserted successfully!";
?>
Prevenzione degli attacchi di SQL injection
Prevenzione degli attacchi di SQL injection
Le istruzioni preparate eseguono l'escape dei caratteri speciali negli input dell'utente, prevenendo gli attacchi di SQL injection. Ecco un esempio:
<?php
$sql = "SELECT * FROM users WHERE email = :email";
$stmt = $pdo->prepare($sql);
$stmt->execute(["email" => "' OR 1=1; --"]);
$result = $stmt->fetch();
if ($result) {
echo "User found.";
} else {
echo "No user found.";
}
?>
Ottimo lavoro!
Ottimo lavoro!
Congratulazioni! Ha imparato a utilizzare le istruzioni preparate in PHP per proteggere le interazioni con il database. Nella prossima lezione esploreremo tecniche avanzate di interrogazione con JOIN e aggregazioni. Continui a programmare!

Domande Frequenti
La lezione «Istruzioni preparate» è gratuita?
Sì — il testo completo di «Istruzioni preparate» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 6 lezioni in totale.
Cosa imparerò in «Istruzioni preparate»?
Metta in sicurezza le query del database con istruzioni preparate Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare PHP Academy?
Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 5 di 6.
Quanto tempo richiede la lezione «Istruzioni preparate»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione PHP Academy?
Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Introduzione ai database
- Connessione a un database MySQL
- Gestire le tabelle
- Eseguire operazioni CRUD
- Istruzioni preparate
- Lavorare con PDO