PHP 7 x64 ODBC错误连接到MSSQL数据库

时间:2016-04-20 20:53:34

标签: php sql-server odbc sqlsrv php-7

在测试升级到PHP7 x64时出现以下错误:

odbc_connect():SQL错误:[Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序

我已经安装了以下内容:

  • PHP 7.0.0 x64
  • 用于SQL Server x64的Microsoft ODBC驱动程序11
  • Microsoft Visual C ++ 2015 Redistributable x64
  • Microsoft Visual C ++ 2015 Redistributable x86
  • PHP 7 MSSQL驱动程序的(线程安全)预览:https://github.com/Azure/msphpsql

我已取消注释/添加了以下我的phpini行:

  • extension = php_pdo_mysql.dll(取消注释)
  • extension = php_odbc.dll(已添加)
  • extension = php_sqlsrv_7_ts.dll(已添加)
  • extension = php_pdo_sqlsrv_7_ts.dll(已添加)

需要考虑的事项:

  • 我可以看到模块确实已加载到phpinfo中。
  • 我已经添加了ODBC连接,可以在系统DSN中看到它。
  • 我已成功通过sqlsrv_connect()而不是odbc_connect()连接,这是我们以前的所有PHP 5.6脚本都使用的。

似乎无法在其他任何地方找到答案。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

我似乎已经解决了我自己的问题。

事实证明,ODBC_CONNECT字符串使用显式DSN名称而不是数据库,显然......

以前我的ODBC Connect字符串是$ conn = odbc_connect('DB',$ DBUSER,$ DBPASS) 我的ODBC数据源是“SERVERNAME”

一旦我更改了ODBC数据源名称以匹配数据库名称,它就可以工作。