从 PHP (版本5.4.42)运行SQL查询时,我收到以下异常。我正在使用PDO连接 SQL SERVER 。
Exception while query the database; Error: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters
CODE
<?php
$query = 'SOME SQL QUERY';
$db = new PDO('odbc:Driver={SQL Server};Server=$SERVER;Database=$DATABASE; Uid=sa;Pwd=*****;', null, null,array(PDO::ATTR_PERSISTENT => true));
$stmt = $db->query($query);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
我没有使用任何位置参数。没有准备或绑定。
我的查询
UPDATE TABLE SET COLUMN = VALUE
情景正常。
查询失败的情况。
如果VALUE sting包含数十万个字母字符,那么它可以正常工作。现在添加一个问号字符,查询将失败。但插入数千个'问号'字符和查询将正常工作。这看起来有点但这是我能在试验和错误方法之后得出的结论。
注意如果我从SQL Server Management Studio运行任何类型的查询。它工作正常。