Tôi chỉ cần đảm bảo rằng tôi đã có các câu lệnh chuẩn bị PDO chính xác, mã sau có được bảo đảm bằng SQL Injection không?Tuyên bố chuẩn bị PDO, được sử dụng chính xác?
$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);
Có vẻ ok. Bạn được bảo vệ chống lại SQL injection theo cách này. Câu hỏi này thêm một cái gì đó cho codereview sau đó stackoverflow. – Arend
Hoàn toàn đồng ý, với @Arend. Tôi sẽ đăng bài theo dõi. – Rob
Các phím không yêu cầu tiền tố đại tràng? Như trong '$ data [': username'] = $ username;' Xem ví dụ 2 tại [PDOStatement :: execute()] (http://www.php.net/manual/en/pdostatement.execute.php) –