我只是需要確保我已經正確地使用了PDO準備語句,下面的代碼是否會被SQL注入保護?PDO準備好聲明,正確使用?
$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);
似乎沒問題。這樣可以防止SQL注入。這個問題更多的是codereview然後stackoverflow的東西。 – Arend
完全同意,與@Arend。我會發佈一個跟進。 – Rob
密鑰是否需要冒號前綴?正如'$ data [':username'] = $ username;' 請參見[PDOStatement :: execute()]中的示例2(http://www.php.net/manual/en/pdostatement.execute.php ) –