【发布时间】:2017-08-28 15:02:40
【问题描述】:
哪个是绑定值的最佳安全方式?我知道有3种方法
1.
$Email=$con->quote($Email);
$Example=$con->prepare("UPDATE Ex SET Email=:Email");
$Example->bindParam(':Email', $Email);
$Example->execute();
2.
$Email=$con->quote($Email);
$Example=$con->prepare("UPDATE Ex SET Email=:Email");
$Example->execute(array(
':Email' => $Email,
));
3.
$Email=$con->quote($Email);
$Example=$con->prepare("UPDATE Ex SET Email=:Email");
$Example->bindParam(':Email', $Email);
$Example->execute(array(
':Email' => $Email,
));
【问题讨论】:
-
“安全方式”是什么意思?你想解决什么不安全感?任何一个都应该同样“安全”。您应该 做的是删除您对
quote()的调用,因为不需要引用准备好的语句。这实际上会改变存储的值。 -
你在做同样的事情。您也可以使用问号绑定,?还有
-
在任何情况下,您都在更新整个数据库而没有
WHERE子句;我希望你意识到这一点。 -
第三种情况没用。
-
还有一个
bindValue,所以会有更多案例!