错误:SQLSTATE [HY093]:参数号无效:混合命名和位置参数

时间:2015-09-24 17:39:14

标签: php sql-server pdo

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字符串长度为大(数万字符)而没有特殊字符。
  • 如果VALUE字符串长度很小(几千个字符) 特殊字符(#$%?*&amp;:&lt;&gt; {})。

查询失败的情况。

  • VALUE字符串包含数万个字符,有些特殊 字符(?#$%*&安培;:其中;&GT; {})

如果VALUE sting包含数十万个字母字符,那么它可以正常工作。现在添加一个问号字符,查询将失败。但插入数千个'问号'字符和查询将正常工作。这看起来有点但这是我能在试验和错误方法之后得出的结论。

注意如果我从SQL Server Management Studio运行任何类型的查询。它工作正常。

0 个答案:

没有答案