使用PHP,ODBC和Windows身份验证连接到SQL Server

Com*_*rus 10 php windows sql-server odbc sql-server-2008

我正在尝试使用PHP通过Windows身份验证连接到ODBC数据源.我可以很好地连接到SQL Server中的服务器,所以我知道它正在运行.当我尝试运行命令时

$link = odbc_connect("my_odbc","",""); 
Run Code Online (Sandbox Code Playgroud)

我收到错误:

"警告:odbc_connect():SQL错误:
[Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]
用户''登录失败.,C:\ Users ...中的SQLConnect中的SQL状态28000"

我试过了:

$link = odbc_connect("Driver={ODBC Driver 11 for SQL Server};   
        Server='my_odbc';Integrated Security=SSPI","","");
Run Code Online (Sandbox Code Playgroud)

其中返回的消息:

警告:odbc_connect():SQL错误:
[Microsoft] [SQL Server的ODBC驱动程序11]
命名管道提供程序:无法打开与SQL Server的连接[53].,SQL状态08001在SQLConnect中的C:\ Users ..."

不知道我做错了什么.

  • my_odbc是不同计算机上的SQL Server(2008).我没有该数据库的管理员权限,因此我无法在该端更改任何内容(例如启用SQL Server身份验证).

  • 我正在运行Windows 7并使用PHP 5.6.12版

  • phpinfo() 表示启用了ODBC支持以及 pdo_sqlsrv支持

Jon*_*que 3

也许你应该尝试使用 PDO(性能差异不是很大)和 SQLsrv 插件(这是我用来连接到我的其他老板的使用 SQL Server 2008 数据库的软件):

$connection = new PDO("sqlsrv:Server=" . $this->sourceServer . ";Database=" . $this->sourceDB, $this->sourceUser, $this->sourcePW);
$connection->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)

您可以在这里下载插件

https://www.microsoft.com/en-ca/download/details.aspx?id=36434

在 Xampp 中,您必须将 dll 复制到该文件夹​​中:

C:\xampp\php\ext
Run Code Online (Sandbox Code Playgroud)

并且您必须将该行添加到您的 php.ini

extension = php_pdo_sqlsrv_56_ts.dll
Run Code Online (Sandbox Code Playgroud)

注意:不要忘记重新启动服务器,以便它可以考虑新的 php.ini 文件。

请让我知道这对你有没有用