我正在使用PDO进行我的插入查询,如下所示:
$stmt=$con->prepare("INSERT INTO `user`(`name`) VALUES (:name)");
$stmt->execute(array(":name"=>$_POST['name']));
但是当用户输入包含引号或双引号等时,那些错误的参数仍会插入我的数据库中! 我的错在哪里?
答案 0 :(得分:0)
PDO prepare()
声明不是为了防止攻击者插入错误的查询。
这个功能只是让你很容易意识到在查询中插入了什么类型的数据。
有很多方法可以使这个功能变得愚蠢
在参与查询之前验证和清理数据是一个很好的尝试(实践)