未捕获的错误:调用未定义的函数 sqlsrv_connect()

Posted

技术标签:

【中文标题】未捕获的错误:调用未定义的函数 sqlsrv_connect()【英文标题】:Uncaught Error: Call to undefined function sqlsrv_connect() 【发布时间】:2019-04-02 04:00:34 【问题描述】:

我安装了xampp-win32-7.2.11-0-VC15-installer.exe,下载并解压SQLSRV53.EXE到C:\xampp\php\ext,添加

;extension=php_sqlsrv_72_ts_x64.dll

;extension=php_pdo_sqlsrv_72_ts_x64.dll

到 php.ini 仍然得到 Uncaught Error: Call to undefined function sqlsrv_connect()

我的代码:

<?php
        $serverName = "XXXXX\SQLEXPRESS"; //serverName\instanceName

        // Since UID and PWD are not specified in the $connectionInfo array,
        // The connection will be attempted using Windows Authentication.
        $connectionInfo = array( "Database"=>"XXXX");
        $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));
        
    ?>

【问题讨论】:

你在编辑正确的 php.ini 文件吗? 【参考方案1】:

1) php_sqlsrv_72_ts_x64 AND php_pdo_sqlsrv_72_ts_x64 应该和 xampp 一样是 32 位

2) 也兼容PHP版本

【讨论】:

【参考方案2】:

就我而言,wamp 服务器上有 2 个 php.ini 文件。其中一个位于C:\wamp\bin\apache\Apachex.x.x\bin 文件夹中,当我尝试通过sqlsrv_connect 函数连接时,我们指的是apache 文件夹中的php.ini 文件。

所以请检查 apache 文件夹中的 php.ini 并启用扩展并测试您与 sqlsrv_connect 的连接。

希望这会有所帮助。

【讨论】:

以上是关于未捕获的错误:调用未定义的函数 sqlsrv_connect()的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的错误:调用未定义的函数 Composer\Console\json_decode()

致命错误:未捕获错误:调用未定义函数 is_product()

致命错误:未捕获的错误:调用 C:\xampp\htdocs\ 中未定义的函数 mysql_connect()

未捕获的错误:将 laravel 5.8 升级到 8 后调用未定义的函数 Illuminate\Mail\TransportManager()

致命错误:未捕获的错误:调用 /homepages/ 中未定义的函数 mysql_pconnect() [重复]

致命错误:未捕获的错误:调用未定义的函数 mssql_query() [重复]