PDO更新查询安全吗?

时间:2013-05-29 11:55:48

标签: php mysql pdo

我试图理解和阅读PDO。

我刚刚编写了以下内容并且它工作正常,但我想知道它是否安全,因为我没有逃避任何变量,它是否仍然要求我逃避这些?

// Get Post Variables 
$first_name = $_POST['first_name'];
$surname = $_POST['surname'];
$email_addr = $_POST['email_addr'];
$user_type = $_POST['user_type'];


// query
$sql = "UPDATE users
    SET first_name=?, surname=?, email_addr=?, user_age=?, user_type=?
    WHERE user_id=?";
$q = $conn->prepare($sql);
$q->execute(array($first_name,$surname,$email_addr,$user_age,$user_type,$uid));

1 个答案:

答案 0 :(得分:5)

prepare()语句中不需要转义变量,因为这是使用这些语句的原因之一,如documentation中所示:

  

调用PDO :: prepare()和PDOStatement :: execute()(...)有助于通过消除手动引用参数的需要来防止SQL注入攻击。