编程语言
首页 > 编程语言> > PHP PDO bindParam / bindValue多次

PHP PDO bindParam / bindValue多次

作者:互联网

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

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

例如:

我有查询:

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

$query = SELECT * FROM table WHERE number = :number OR number = :number

在我的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();

这引发错误

COUNT field incorrect or syntax error

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

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

我试图不使用使用位置参数?代替

解决方法:

从理论上讲,您可以对准备好的语句进行仿真.

You must include a unique parameter marker for each value you wish to
pass in to the statement when you call PDOStatement::execute(). You
cannot use a named parameter marker of the same name more than once in
a prepared statement, unless emulation mode is on.

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

标签:sqlbindparameter,php,pdo
来源: https://codeday.me/bug/20191029/1959662.html