Discorso preparato
Un'istruzione preparata è una cosiddetta istruzione preparata per un sistema di database . Contrariamente alle istruzioni normali, non contiene ancora alcun valore di parametro. Invece, i segnaposto vengono trasferiti al sistema di database.
Utilizzando istruzioni preparate, è possibile prevenire efficacemente le iniezioni SQL , poiché il sistema di database verifica la validità dei parametri prima che vengano elaborati.
Se un'istruzione con parametri diversi deve essere eseguita più volte nel sistema di database (ad esempio all'interno di un ciclo), le istruzioni preparate possono portare un vantaggio in termini di velocità, poiché l'istruzione è già pre-tradotta nel sistema di database e deve essere eseguita solo con i nuovi parametri.
Esempio di un'istruzione preparata in Java:
// Statement wird erzeugt
PreparedStatement ps = connection.prepareStatement(
"SELECT user, password FROM tbl_user WHERE user = ?"
);
// Parameter werden übergeben
ps.setString(1, username);
// Statement wird ausgeführt.
ResultSet rs = ps.executeQuery();
Esempio di un'istruzione preparata in PHP con oggetti dati PHP :
<?php
$stmt = $dbh->prepare('SELECT user, password FROM tbl_user WHERE user = :user');
$stmt->bindParam(':user', $user);
// eine Zeile abfragen
$user = 'Alice';
$stmt->execute();
// eine weitere Zeile mit anderen Werten abfragen
$user = 'Bob';
$stmt->execute();
?>
link internet
- Tutorial dettagliato delle istruzioni preparate (PHP e mysqli)
- PHP/MySQL: maggiore sicurezza e prestazioni migliorate grazie a MySQLi e alle dichiarazioni preparate . (PDF; 419 kB)
Evidenze individuali
- ↑ Dichiarazioni preparate e stored procedure. Estratto il 25 settembre 2011 .