【发布时间】:2021-03-26 10:01:55
【问题描述】:
我运行 SQL Server 2016。我尝试通过 PHP 脚本(PHP 版本 8)连接到它。我确实安装了驱动程序并在 php.ini 中添加了路径(与我的 PHP 版本相同):
...
extension=pdo_sqlsrv_80_nts
extension=pdo_sqlsrv_80_ts
extension=sqlsrv_80_nts
extension=sqlsrv_80_ts
...
这是我的脚本:
$serverName = "<ServerName>";
$connectionInfo = array( "Database"=>"<database>", "UID"=>"<user>", "PWD"=>"<pwd>");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
我收到以下错误:
Array
(
[0] => Array
(
[0] => IM006
[SQLSTATE] => IM006
[1] => 0
[code] => 0
[2] => [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
[message] => [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
)
[1] => Array
(
[0] => 01000
[SQLSTATE] => 01000
[1] => 5701
[code] => 5701
[2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Changed database context to '<database>'.
[message] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Changed database context to '<database>'.
)
[2] => Array
(
[0] => 01000
[SQLSTATE] => 01000
[1] => 5703
[code] => 5703
[2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Changed language setting to us_english.
[message] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Changed language setting to us_english.
)
)
知道有什么问题吗? 谢谢你的帮助
【问题讨论】:
-
docs.microsoft.com/en-us/sql/connect/php/… 表示 pdo_sqlsrv 驱动程序不支持 UID 和 PWD。 (我猜这意味着您应该在那种情况下使用集成的 Windows 身份验证。要么使用其他驱动程序。)
-
您应该在连接字符串中指定驱动程序:connectionstrings.com/microsoft-odbc-driver-17-for-sql-server
-
感谢您的帮助,但还是不明白。 PHP 文档很清楚 php.net/manual/en/function.sqlsrv-connect.php 并且对于与 sql server 16 的标准连接来说非常困难:connectionstrings.com/sql-server-2016 Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;连接字符串需要适应 PHP (UID & PWD)
-
似乎您同时安装了 sqlsrv 和 pdo_sqlsrv 驱动程序。你试过PDO_SQLSRV example吗?
-
为了让它工作,我必须指定:$serverName="MyComputerName\MSSQLSERVER01"。从错误消息看来,您可能正在尝试使用 localhost 或它需要的 ComputerName \ InstanceName 以外的其他东西。
标签: php sql-server connect