我正在尝试使用 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/