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

Posted

技术标签:

【中文标题】未捕获的错误:在 XAMPP 中调用未定义的函数 sqlsrv_connect()【英文标题】:Uncaught Error: Call to undefined function sqlsrv_connect() in XAMPP 【发布时间】:2017-08-04 12:23:30 【问题描述】:

我正在尝试使用 php 连接到 SQL Server,但不幸的是,它在 self 调用函数时失败了。我安装了驱动程序 (DLL),以及来自该站点的驱动程序:https://www.microsoft.com/de-ch/download/details.aspx?id=36434

我收到以下消息:

Fatal error: Uncaught Error: Call to undefined function sqlsrv_connect() in ....

我使用 XAMPP 和最新的 PHP 版本 7.1.1 运行本地服务器。

更新:

我检查了扩展是否在 PHP 中加载:

var_dump(extension_loaded ("php_sqlsrv_7_nts"));

但它给了我一个bool(false) 回复。

【问题讨论】:

你重置服务器了吗? 你的意思是简单的重启?是的,我也这样做了。 是的,这就是我的意思......这将帮助你有一个 smilar 问题:***.com/questions/30736601/… 您使用的是sqlsrv 4.0(从微软网站下载的)吗?如果是这样,see my answer here @ImClarky 是的,我下载了 4.0 版本。现在我也降级到 php 7.0 版,但它也不能正常工作。我不知道为什么会出现此错误。 【参考方案1】:

您必须先安装 MSSQL 扩展并启用它们。不能开箱即用。您在示例中拥有的是 ODBC 驱动程序,但您的 PHP 版本需要处于无线程安全模式的 PHP 扩展。

找到正确的扩展有点复杂。否则,您可以尝试通过 ODBC 进行连接,但这会使一切变得更加复杂。

试试这个:

https://learninglaravel.net/microsoft-drivers-for-php-7-for-sql-server-is-now-available

【讨论】:

感谢您的回答,但我已经这样做了。我把它添加到了ext文件夹中,并在php.ini文件中注册了它。 你能检查扩展是否加载了吗?可能与 PHP 7.1 有所不同,但它无法正常工作。并确保您使用 Not Thread Safe 版本对不起我的错。

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

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

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

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

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

如何修复未捕获的错误:调用未定义的函数 mysql_pconnect() [重复]

致命错误:未捕获的错误:在 C:\xampp\phpMyAdmin\libraries\classes\DatabaseInterface.php:1544 中的 null 上调用成员函数存在()