[英]Cannot connect to SQL Server with PHP script
我运行 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.
)
)
知道有什么问题吗? 谢谢您的帮助
从 Php 7 升级到 8 后,我遇到了同样的问题。正如这里的一些评论者所提到的,我的 PDO 代码(pdo_sqlsrv)仍然有效。 但是旧的非 PDO 代码 (sqlsrv) 得到了与您描述的相同的错误。 我开始将该代码切换到 PDO,并会在可能的情况下继续。 但后来我意识到更新我的 SQL 服务器驱动程序解决了这个问题。 您可以通过谷歌搜索“为 SQL 服务器下载 ODBC 驱动程序”找到这些驱动程序。 您将需要版本 17 或更高版本。
几天来一直停留在这个确切的问题上,直到关键字“升级 odbc 驱动程序”击中我。 我一升级,问题就解决了。 https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver15
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.