如何在mySQL查询中防止2+ $ _POST [变量]的注入?

时间:2016-12-01 16:49:48

标签: php mysql

我准备了一系列有效的查询。现在我正在保护这些查询以防止注入。当我在查询中有一个变量但是无法通过反复试验找到更多的变量时,我可以做得很好。

这就是我正在做的事情(参见$ sql和$ handle-> execute()):

<?php   
$sql = "SELECT FORMAT (z.PriceMultiplier * p.BasicTicketPrice,2) 
AS totalPrice 
FROM Zone z JOIN Production p 
WHERE p.Title = :n AND z.Name = :n";
$handle = $conn->prepare($sql); 
$zone = "$_POST[Zone]";
$prod = "$_POST[Production]";
$handle->execute(array(":n"=> $zone, $prod))    
$conn = null;
$res = $handle->fetchAll(); 
    foreach($res as $row) { 
      echo "<input name='Price' type='text' readonly='readonly' value=£".$row['totalPrice']."><br>";             
    }           
?>

如何将变量$ zone和$ prod分配给handle-&gt; execute()中的语句?

提前谢谢。

[编辑1:解决方案:使用?而不是:n p.Title =? AND z.Name =?并执行$ handle-&gt; execute(array($ zone,$ prod))]

[编辑2:我不相信这是重复的 - 问题不在于如何防止注入攻击......这是如何处理多个变量的。]

0 个答案:

没有答案