sql-server - 使用 PHP、ODBC 和 Windows 身份验证连接到 SQL Server

标签 sql-server sql-server-2008 php windows odbc

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

$link = odbc_connect("my_odbc","",""); 

我得到错误:

"Warning: odbc_connect(): SQL error:
[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]
Login failed for user ''., SQL state 28000 in SQLConnect in C:\Users..."

我试过:

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

返回的消息:

Warning: odbc_connect(): SQL error:
[Microsoft][ODBC Driver 11 for SQL Server]
Named Pipes Provider: Could not open a connection to SQL Server [53]. , SQL state 08001 in SQLConnect in C:\Users..."

不确定我做错了什么。

  • my_odbc 是另一台机器上的 SQL Server (2008)。我对该数据库没有管理员权限,因此我无法为此更改任何内容(例如启用 SQL Server 身份验证)。

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

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

最佳答案

也许您应该使用 SQLsrv 插件尝试 PDO(性能差异不是很大)(这是我用来连接到使用 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);

你可以在这里下载插件

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

在 Xampp 中,您必须复制该文件夹中的 dll:

C:\xampp\php\ext

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

extension = php_pdo_sqlsrv_56_ts.dll

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

让我知道它是否适合你

关于sql-server - 使用 PHP、ODBC 和 Windows 身份验证连接到 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32078398/

相关文章:

sql - 将数据库更改为“在线”,并将数据库设置为“多用户”

c# - 如何使用 Linq to ADO.NET Entity Framework 进行全文搜索 (FTS)?

php - 函数与 OOP 问题

php - 合并两个 PHP 脚本

c# - 未找到结果时处理 ExecuteScalar 返回 null

c# - 在 Entity Framework 中为本地主机连接 SQL Server 字符串

sql-server-2008 - 从固定格式文本文件批量插入忽略行终止符

javascript - 使用单选按钮触发链接

SQL Server - 执行直接查询与使用 sp_executesql 执行

c# - 从两个不同的表中确定 SQL Server 中的前 k 个值