2015-10-26 21 views
1

我正在使用以下代碼在PHP中執行MySQL查詢。在PHP-MySQL中綁定變量

$cus_id = '1'; 
$query = new QUERY(); 
$clause = "SELECT * FROM customers WHERE cus_id=:cus_id AND status='ACTIVE'"; 
$params = array('cus_id'=>$cus_id); 
$result = $query->run($clause, $params)->fetchAll(); 

現在的問題是:是否足夠安全。或者我還需要綁定靜態字符串?例如:

$clause = "SELECT * FROM customers WHERE cus_id=:cus_id AND status=:status"; 
$params = array('cus_id'=>$cus_id, 'status'=>'ACTIVE'); 
+2

您需要了解[sql注入攻擊](http://bobby-tables.com)。因爲你的問題暗示着貨物崇拜的編程 - 在沒有理解的情況下做某件事你爲什麼要這樣做。 –

+0

謝謝大家。 @MarcB:我以前讀過你的文章。我雖然我應該再次清除它。 –

回答

1

這是安全的,因爲ACTIVE不是用戶輸入。所以你不需要綁定它。

1

這樣很好,你有它。 status的值未被動態組合,並且不會產生任何漏洞。