PDO绑定参数

时间:2012-10-09 19:39:50

标签: php mysql pdo

我正在构建简单的查询构建器,我有两个问题:

  1. 是否可以将具有正常功能的mysql查询保护到与使用->execute(array(':param:' => ...完成相似的级别?

  2. 是否可以在一个查询中使用多个变量,给它们指定相同的名称(分号后面的名称),然后逐个绑定它们?

1 个答案:

答案 0 :(得分:2)

  1. 如果我理解正确,您想知道是否可以使用标准bindParam函数复制mysql_*的功能?

    简短回答。请完全不要使用mysql函数,使用mysqliPDO,因为它们为prepared statements提供了真正的安全性。它们还可以提供更好的查询性能,因为SQL可以针对数据库进行预优化。

  2. 您必须单独定义每个参数(即使它是相同的值)。您也可以将一个简单数组传递给execute()方法调用,但是您没有明确定义参数类型的选项。

  3. 在你的函数中使用这样的东西:

    $name = "fred";
    $statement = $pdo->prepare("SELECT id FROM contacts WHERE first_name = ? OR last_name = ?");
    for ($x = 1; $x <= 2; $x++) {
      $statement->bindParam($x, $name, PDO::PARAM_STR);
    }
    $statement->execute();