PHP PDO bindParam/bindValue 多次

Gab*_*ich 3 php pdo sqlbindparameter

我在使用 ODBC 的 PDO 语句时遇到问题。

我在 Windows Server 2003 和 PHP 5.4.x 中使用 SQL SERVER 7

例如:

我有查询:

(这不是实际的查询,但它适用于示例)

$query = SELECT * FROM table WHERE number = :number OR number = :number
Run Code Online (Sandbox Code Playgroud)

在我的 php 中,我有:

$conn = new PDO($connectionString);

$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$statement = $conn->prepare($query);

$statement->bindParam(':number', $someNumber);

$statement->execute();
Run Code Online (Sandbox Code Playgroud)

这会引发错误

COUNT field incorrect or syntax error
Run Code Online (Sandbox Code Playgroud)

问题是, bindParam 只绑定 :number 的第一次出现......并且尝试再次绑定它也不起作用。

有没有办法绑定多个具有相同名称的命名参数?

我试图不使用位置参数使用 ? 反而

sec*_*tus 5

从理论上讲,您可以打开对准备好的语句的模拟。

当您调用 PDOStatement::execute() 时,您必须为您希望传递给语句的每个值包含一个唯一的参数标记。您不能在准备好的语句中多次使用同名的命名参数标记,除非启用了仿真模式。

http://www.php.net/manual/en/pdo.prepare.php