Solo necesito asegurarme de que tengo las declaraciones de preparación de PDO correctamente, ¿será seguro el siguiente código con SQL Injection?Declaración preparada por PDO, ¿utilizada correctamente?
$data['username'] = $username;
$data['password'] = $password;
$data['salt'] = $this->generate_salt();
$data['email'] = $email;
$sth = $this->db->prepare("INSERT INTO `user` (username, password, salt, email, created) VALUES (:username, :password, :salt, :email, NOW())");
$sth->execute($data);
Parece correcto. Estás protegido contra la inyección de SQL de esta manera. Esta pregunta es más para la revisión de código que para el stackoverflow. – Arend
Totalmente de acuerdo, con @Arend. Publicaré un seguimiento. – Rob
¿Las teclas no requieren prefijos de dos puntos? Como en '$ data [': username'] = $ username;' Vea el ejemplo 2 en [PDOStatement :: execute()] (http://www.php.net/manual/en/pdostatement.execute.php) –