Php PDO ODBC:无效的字符串或缓冲区长度

Php PDO ODBC:无效的字符串或缓冲区长度,php,sql-server,pdo,unixodbc,Php,Sql Server,Pdo,Unixodbc,我们使用PDO通过DSN连接到MSSQL服务器: odbc:Driver={SQL Server Native Client 11.0};;Server=*.*.*.*;Database=whatever; 尝试执行execute()语句时,我们收到以下错误消息: Error: SQLSTATE[HY090]: Invalid string or buffer length: 0 [Microsoft][SQL Server Native Client 11.0]Invalid string

我们使用PDO通过DSN连接到MSSQL服务器:

odbc:Driver={SQL Server Native Client 11.0};;Server=*.*.*.*;Database=whatever;
尝试执行
execute()
语句时,我们收到以下错误消息:

Error: SQLSTATE[HY090]: Invalid string or buffer length: 0 [Microsoft][SQL Server Native Client 11.0]Invalid string or buffer length (SQLExecute[0] at /builddir/build/BUILD/php-5.5.18/ext/pdo_odbc/odbc_stmt.c:254)

这个错误消息似乎是一个相当默认的错误消息,可能意味着很多不同的事情


在我们的例子中,只是在准备好的语句中提到了一个参数,但没有被绑定。grrrr

你还应该添加相关的代码,这样当人们遇到同样的问题并偶然发现这个问题时,他们也会知道。Rob,请你添加你的代码,因为我面临同样的问题。我实际代码的细节与此无关,因此省略了它们。问题是驱动程序返回的错误消息很差。在执行查询之前,我会仔细检查您在查询中包含的所有参数是否都已绑定。我刚刚遇到此错误消息,因为我的SQL脚本以新行开头。删除空行解决了此问题。就像@RobForrest所说的,这似乎是一个通用的错误消息,尽管有不同的潜在原因。