2017-02-04 78 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