Mysql
 sql >> Database >  >> RDS >> Mysql

È un metodo sicuro per inserire i dati dei moduli in un database MySQL?

L'esempio che hai fornito inserisce le post vars nel database senza prima analizzarle per l'input dell'utente malvagio. Usa il cast del tipo, le funzioni di escape/filtro, le istruzioni preparate ecc. prima di usarle per interagire con il tuo DB.

Una regola generale da seguire è non fidarsi mai dell'input dell'utente. MAI!

Dai un'occhiata a:Il modo migliore per fermare SQL Injection in PHP

In risposta alla tua domanda, ecco come gestiresti l'intero modulo utilizzando le dichiarazioni preparate PDO.

$stmt = $db->prepare('INSERT INTO Persons (FirstName, LastName, Age) VALUES (:first_name, :last_name, :age)');

$stmt->execute(array(':first_name' => $first_name,':last_name' => $last_name, ':age' => $age));

Se vuoi solo inserire una colonna nel record come hai chiesto, la sintassi sarebbe:

$stmt = $db->prepare('INSERT INTO Persons (FirstName) VALUES (:first_name)');

$stmt->execute(':first_name', $first_name);