连接失败 - 使用 php 7.3 和 8.0 失败 - 尝试 wamp 和 xampp - 尝试访问 sqlserver 数据库

Posted

技术标签:

【中文标题】连接失败 - 使用 php 7.3 和 8.0 失败 - 尝试 wamp 和 xampp - 尝试访问 sqlserver 数据库【英文标题】:Connection Fail - fails with php 7.3 and 8.0 - tried wamp and xampp - attempting to access a sqlserver database 【发布时间】:2021-08-11 18:43:37 【问题描述】:

这是整个错误:

连接失败

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 'sodb'. [message] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Changed database context to 'sodb'. ) [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. ) )

我已经成功安装了以下扩展,它们显示在 phpinfo() 下

extension=php_sqlsrv_73_ts_x64.dll
extension=php_sqlsrv_73_nts_x64.dll
extension=php_pdo_sqlsrv_73_nts_x64.dll
extension=php_pdo_sqlsrv_73_ts_x64.dll
extension=php_sqlsrv_73_ts_x86.dll
extension=php_sqlsrv_73_nts_x86.dll
extension=php_pdo_sqlsrv_73_nts_x86.dll
extension=php_pdo_sqlsrv_73_ts_x86.dll
extension=php_sqlsrv_80_ts_x64.dll
extension=php_sqlsrv_80_nts_x64.dll
extension=php_pdo_sqlsrv_80_nts_x64.dll
extension=php_pdo_sqlsrv_80_ts_x64.dll
extension=php_sqlsrv_80_ts_x86.dll
extension=php_sqlsrv_80_nts_x86.dll
extension=php_pdo_sqlsrv_80_nts_x86.dll
extension=php_pdo_sqlsrv_80_ts_x86.dll

这是我抛出此错误的 php 代码:

$serverName = "***********************";
$connectionInfo = array( "Database"=>"*********", "UID"=>"*********", "PWD"=>"*************");
$maxret = 3;
$conn = false;

do 
    $conn = sqlsrv_connect($serverName, $connectionInfo);
    if($conn !== false) break;
    sleep(2);
 while($maxret-- >= 0);

我已经安装了 ODBC 相关的库

我在三台不同的机器上工作,它们具有不同的 IP 地址,都在 azure 防火墙上启用(sql 数据库在 azure 上)。在它工作的一台机器上,两台机器产生上述错误。

两台机器上的相同 php.ini 文件和 wamp 中列出的扩展名是相同的。 php 脚本在一台机器上运行,在另一台机器上会产生错误。

【问题讨论】:

考虑格式化日志。 如果您的 SQL Server 不在 LocalHost 上,您是否尝试从其他地方连接到它以确保允许远程连接? 是的,我可以从另一台机器上的另一个ip连接到sql server,实际上是多台其他机器 【参考方案1】:

解决这个问题的方法是安装 Microsoft SQL Server Management ...

MSMSS

【讨论】:

以上是关于连接失败 - 使用 php 7.3 和 8.0 失败 - 尝试 wamp 和 xampp - 尝试访问 sqlserver 数据库的主要内容,如果未能解决你的问题,请参考以下文章

由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失%

当 Qt-5 连接失败时

Centos7 安装hadoop2.7.3和jdk1.8

从 Netbeans 启动 Tomcat 失败

Oozie Spark on YARN requirement failed

Xcode 7.3 上传到 iTunesConnect(TestFlight 构建)失败