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 启动纯文本编辑器(不是文字处理器),在其中键入 <?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()