PHP PDO bindParam/bindValue 多次

标签 php pdo

<分区>

我对 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 仅绑定(bind)第一次出现的 :number ... 并且尝试再次绑定(bind)它也不起作用。

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

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

最佳答案

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

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

关于PHP PDO bindParam/bindValue 多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24482586/

相关文章:

PHP mail() 中继到邮件服务器

php - Ajax /PHP : Updating a Database

php - PDO/MySQL rowCount 未按预期返回

php - 使用 PDO 在两个数据库之间传输 mysql 表

php - PDO中缺少mysql_*的一些有用函数

php - 非 super 用户超出 postgresql php 连接限制

php - 订购 PHP 数组

php - 使用 Zend Framework 的原始 SQL 查询

php - 简单的网页抓取 PHP Xpath DOM

php - 带有准备好的语句的execute() 出现异常