2017-02-04 79 views
1

我正在制作PHP代码,并使用数据库MySql。 我想知道参数绑定,这里是一个排除字段(pw)的例子;必须参数绑定更安全(PDO)

如果用户经由形式发送一个用户名,和它作为POST

$username = $_POST["username"]; 

,然后被用于登录;

$query = "SELECT * FROM users WHERE username = :username"; 

然后

$stmt = $conn->prepare($query); 
$stmt->bindParam(":username", $username); 

以前有保障呢?我的意思是比较直接使用POST变量。

问候

回答

0

这都没有区别你是否使用:

$stmt->bindParam(":username", $username); 

$stmt->bindParam(":username", $_POST['username']); 

它们都包含相同的值,并将其绑定到该参数是完全一样的。

保护来自将参数绑定到准备好的语句,而不是将变量绑定到的参数。

+0

是的,我的意思是,它是否使用原始sql查询而不是绑定的任何差异。 –

+0

是的,绝对。请参阅http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?s=2|37.5876 – Barmar