【发布时间】:2012-05-15 08:44:45
【问题描述】:
我只是需要确保我已正确获取 PDO 准备语句,以下代码是否会受到 SQL 注入的保护?
$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。我会跟进。
-
键不需要冒号前缀吗?如
$data[':username'] = $username;参见PDOStatement::execute() 的示例2