2012-10-09 87 views
1

我建立简单的查询生成器,我有两个问题:PDO的绑定参数

  1. 是否有可能,因为它是用->execute(array(':param:' => ...完成,以确保其正常功能的MySQL查询到类似的水平?

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

+0

你的问题不明确。请重新说明这一点。 –

回答

2
  1. 如果我理解正确的话,你想知道是否有可能与标准mysql_*功能复制的bindParam的功能?

    简短的回答是没有。请不要在所有使用MySQL的函数,使用mysqliPDO因为这些为您提供真正的安全,当谈到prepared statements。他们还可以提供更好的查询性能的SQL能够对数据库进行预优化。

  2. 您将不得不单独定义每个参数(即使它是相同的值)。你也可以通过一个简单的数组到​​方法调用,但你并不那么有明确定义的参数类型的选项。

在你的函数中使用的一些事情是这样的:

$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();