【问题标题】:Connection Fail - fails with php 7.3 and 8.0 - tried wamp and xampp - attempting to access a sqlserver database连接失败 - 使用 php 7.3 和 8.0 失败 - 尝试 wamp 和 xampp - 尝试访问 sqlserver 数据库
【发布时间】: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,实际上是多台其他机器

标签: php xampp wamp phpinfo


【解决方案1】:

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

MSMSS

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-23
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2016-10-23
    • 2016-12-07
    相关资源
    最近更新 更多