1 回答

TA贡献1811条经验 获得超5个赞
为避免 sql 注入,您应该使用准备好的语句。这些带有 PDO 并且使用起来非常简单。看看下面的例子。
$sql = "
INSERT INTO
usuarios
(nombre, apellidos, email, password,role)
VALUES
(:nombre, :apellidos, :email, 'user')
";
$stmt = $this->db->prepare($sql);
$result = $stmt->execute([
'nombre' => $this->getNombre(),
'apellidos' => $this->getApellidos(),
'email' => $this->getEmail()
]);
return $result;
此外,您可以通过 PDO 将 sql 查询的执行包装在 try/catch 块中。因此,如果发生任何异常,您可以捕获它并查看到底出了什么问题。
try {
// execute your logic here
} catch (PDOException $e) {
var_dump($e, $this->db->errorInfo());
}
希望这可以帮助。
除此之外,您的 SQL 语法出现错误。之后的最后一个逗号rol。此外,错误消息说,()密钥的条目uq_email已经存在。您可以使用上面显示的 try/catch 块捕获这种异常。
- 1 回答
- 0 关注
- 87 浏览
添加回答
举报