php:致命错误:调用未定义函数 sqlsrv_connect()

Posted

技术标签:

【中文标题】php:致命错误:调用未定义函数 sqlsrv_connect()【英文标题】:php :Fatal error: Call to undefined function sqlsrv_connect() 【发布时间】:2016-07-02 08:09:02 【问题描述】:

我有一个大问题,我希望在这里解决这个问题 我尝试使用以下方式连接到 Sql Server 2008 R2:

    php 5.6.11 Xampp 5.6.3 Sql Server 2008 r2 为 PHP 使用 sql server 驱动程序 (php_pdo_sqlsrv_56_ts.dl & php_sqlsrv_56_ts.dll)

我尝试连接的代码是:

 $serverName = "Mahmoud-HP\SQL2008R2"; //serverName\instanceName
    $connectionInfo = array( "Database"=>"HR16", "UID"=>"Mahmoud", "PWD"=>"123" , "MultipleActiveResultSets" => false);
    $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));
    

但是当运行页面时,这条消息会出现在我面前

致命错误:在 C:\xampp\htdocs\testsqlserver\index.php 上调用未定义函数 sqlsrv_connect()

这个问题有什么解决办法

【问题讨论】:

phpinfo()创建一个php页面。这应该会显示您的 SQL 服务器驱动程序是否正确加载。 jszobody 我如何在此页面中显示它??什么是国旗??!!你能给我解释一下吗 undefined function 明确表示未安装扩展程序,您对安装方式的描述基本上是“使用”。无论如何,我建议您从命令行运行 PHP,这样您就有机会看到初始化错误。只需php -v 即可触发它们。 @PERSON 启动纯文本编辑器(不是文字处理器),在其中键入 &lt;?php phpinfo();,将其另存为 C:\xampp\htdocs\testsqlserver\phpinfo.php,然后将其加载到浏览器中(它应该与您的 URL 相同已在使用,但以 phpinfo.php 结尾的除外。 你是否在编辑完 php.ini 后重启了你的 apache? 【参考方案1】:

你必须为 php 使用 SQL Server 原生驱动程序。

从这里下载:

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=20098

示例代码:

$serverName = "tcp:ServerID.database.windows.net, 1433";

$connectionOptions = array("Database" => "DatabaseName", 

                           "UID" => "Username@ServerID",

                           "PWD" => "password");

$conn = sqlsrv_connect($serverName, $connectionOptions);



if($conn === false)



    die(print_r(sqlsrv_errors(), true));


编辑

确保加载列出的两个 dll:

extension=php_sqlsrv_56_ts.dll

extension=php_pdo_sqlsrv_56_ts.dll

【讨论】:

本机驱动程序是扩展实际工作所必需的,但您需要先安装扩展而 OP 没有(因此出现 undefined function 错误消息)。 @Álvaro González 你是对的。我已经编辑了我的答案 这在本地(osx)上运行良好,但在 windows server 2012 上不行,我还不知道为什么

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

致命错误:调用未定义的函数 imagewebp() [关闭]

致命错误:在 PHP 中调用未定义的函数 imap_open()

PHP 致命错误:调用 Cpanel 上未定义的函数 json_decode()

php:致命错误:调用未定义函数 sqlsrv_connect()

PHP 致命错误:调用未定义函数 apache_getenv()

PHP 致命错误:未捕获的错误:使用 Laravel 5.8 和 PHP 7.4 调用未定义函数 Whoops\Exception\xdebug_is_enabled()