PHP PDO MSSQL中返回的参数 问题

PHP PDO MSSQL中返回的参数 问题,php,sql-server,linux,pdo,parameters,Php,Sql Server,Linux,Pdo,Parameters,自从将我的web应用程序从Windows服务器移动到Linux服务器以来,我的SQL包装器类遇到了各种各样的问题,我希望这是最后一个 我一直在使用用于Windows的SQLSRV PDO驱动程序,但现在使用的是dblib,我认为它使用ODBC,这一切都很混乱 在以前的服务器上,我能够使用PDO bindParam方法非常轻松地从存储过程中检索输出参数 但是,此方法似乎不再返回我的输出参数。。。还有其他人经历过吗 当我的包装器类动态构建查询和参数时,我很难显示一些测试代码,但我假设它是这样的: $

自从将我的web应用程序从Windows服务器移动到Linux服务器以来,我的SQL包装器类遇到了各种各样的问题,我希望这是最后一个

我一直在使用用于Windows的SQLSRV PDO驱动程序,但现在使用的是dblib,我认为它使用ODBC,这一切都很混乱

在以前的服务器上,我能够使用PDO bindParam方法非常轻松地从存储过程中检索输出参数

但是,此方法似乎不再返回我的输出参数。。。还有其他人经历过吗

当我的包装器类动态构建查询和参数时,我很难显示一些测试代码,但我假设它是这样的:

$this->query->bindParam(':some_param','some_value',PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT,$value['length']);
需要注意的几点:

存储过程在同一台服务器上,并且没有更改,因此我知道它们仍然以相同的方式返回输出参数。 PHP PDO代码没有更改,这里唯一的变量是正在使用的PDO驱动程序。 我的问题 有没有人在Linux服务器上使用PHP、MSSQL和PDO时遇到过这个问题? 是否有其他方法使用PDO从Linux连接到MSSQL数据库? 我目前使用的是PHP5.5.18,有没有更高版本可以解决这个问题?如果是,是什么版本,在CentOS 6上是否稳定?
Hi@Ben我想你可以使用odbc+php作为从linux访问db的替代方法,你还需要freetds驱动程序。此外,你也可以尝试mssql而不是PDO的sqlsrv。至于输出参数,我个人从不使用bindParam获取它们,我只是像SELECT一样获取它们statement@meda我想我正在使用mssql方法,或者dblib使用的任何方法。。。我很想从语句中返回参数,但不幸的是,我的工作是将此软件从桌面带到web,在这样做时,我必须保持数据库不变,因此我使用的是mssql而不是mysql…:-@你能给我一个ODBC连接字符串的例子吗?我不想在odbc配置文件中定义每个数据库,因为每个客户端都有自己的数据库。。。是否可以执行以下操作:odbc:DRIVER=FreeTDS;主机名=10.0.59.160;端口=1433;数据库=导出器_配置文件;?本机odbc或pdo/odbc的连接示例?允许您更改php代码吗?您是否尝试了我给您的测试命令?在/etc/odbc.ini中查找您指向freetds驱动程序的位置