【问题标题】:Using PDO without binding使用没有绑定的 PDO
【发布时间】:2014-02-02 07:44:46
【问题描述】:
$stmt = $conn->prepare('SELECT * FROM users WHERE user_id = :user_id');

$stmt->execute(array(':user_id' => $_GET['user_id']));

$result = $stmt->fetchAll(PDO::FETCH_OBJ);

我正在使用这样的 PDO,我需要清理 GET 参数吗?

我知道如果我这样做$stmt->bindParam(':user_id', $_GET['user_id'], PDO::PARAM_INT); 不是问题。但是我的路安全吗?

【问题讨论】:

    标签: php mysql pdo sanitization


    【解决方案1】:

    是的,它是安全的。 executebind* 之间的唯一区别是:

    • execute 一次接受多个参数,而您必须 bind* 分别接受每个参数
    • bind* 允许您指定参数类型,而 execute 将所有内容绑定为字符串

    将参数传递给execute 主要是一种方便的简写,它仍然是安全的。

    【讨论】:

      猜你喜欢
      • 2013-03-08
      • 1970-01-01
      • 2013-03-07
      • 2012-02-15
      • 2014-05-12
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 2013-08-30
      相关资源
      最近更新 更多