我对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 ...再次尝试绑定它也不起作用。
有没有办法绑定多个具有相同名称的命名参数?
我正在尝试不使用位置参数,使用?相反,
发布于 2014-06-30 12:07:22
从理论上讲,您可以启用预准备语句的仿真。
execute调用PDOStatement::
()时,对于要传递给语句的每个值,必须包括一个唯一的参数标记。除非启用了仿真模式,否则不能在预准备语句中多次使用同名的命名参数标记。
http://www.php.net/manual/en/pdo.prepare.php
发布于 2015-10-01 17:43:00
老实说,我对MsSQL了解不多,但我非常确定在MySQL中有一些与User Defined Variables等效的东西。您可以使用这些参数,而不是我在回答中描述的参数:
发布于 2015-10-01 18:00:49
只需打开模拟,将此设置从false更改为true:
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);https://stackoverflow.com/questions/24482586
复制相似问题