致命错误:未捕获的错误:调用 C:\xampp\htdocs\DBtest\sqlsrv.php:7 中的函数 sqlsrv_connect() 堆栈跟踪:#0 main SQLSERVER

Posted

技术标签:

【中文标题】致命错误:未捕获的错误:调用 C:\\xampp\\htdocs\\DBtest\\sqlsrv.php:7 中的函数 sqlsrv_connect() 堆栈跟踪:#0 main SQLSERVER【英文标题】:Fatal error: Uncaught Error: Call to function sqlsrv_connect() in C:\xampp\htdocs\DBtest\sqlsrv.php:7 Stack trace: #0 main SQLSERVER致命错误:未捕获的错误:调用 C:\xampp\htdocs\DBtest\sqlsrv.php:7 中的函数 sqlsrv_connect() 堆栈跟踪:#0 main SQLSERVER 【发布时间】:2021-04-18 04:58:28 【问题描述】:

错误问题:

致命错误:未捕获错误:调用未定义函数 C:\xampp\htdocs\DBtest\sqlsrv.php:7 中的 sqlsrv_connect() 堆栈跟踪: #0 main 在第 7 行的 C:\xampp\htdocs\DBtest\sqlsrv.php 中抛出

用于测试连接的 PHP:

<?php
$serverName = "LAPTOP-NUUM4IGR\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"=>"perkuliahan");
$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 文件:

extension=php_pdo_sqlsrv_74_nts_x64.dll 
extension=php_pdo_sqlsrv_74_ts_x64.dll 
extension=php_sqlsrv_74_nts_x64.dll 
extension=php_pdo_sqlsrv_74_ts_x64.dll

我的 phpinfo 上的 pdo_sqlsrv 看起来不错。扩展版本 5.8.0 + 12928 我已经安装了 ODBC PHP 版本 7.4.10

之前我使用的是 SQL SERVER 2008 R2,我想那不符合条件,所以我升级到 SQL Server 2012。但仍然卡住 我做错了吗?我非常感谢您的解决方案。

【问题讨论】:

您需要使用适当的扩展启用驱动程序的sqlsrv 部分。我的猜测是,您需要添加php_sqlsrv_74_ts_x64.dll(线程安全版本)。 【参考方案1】:

MSSQL 扩展在 PHP 5.3 或更高版本的 Windows 上不再可用。 SQLSRV,Microsoft 提供了 MS SQL 的替代驱动程序:

» http://www.microsoft.com/en-us/download/details.aspx?id=20098

1.从http://www.microsoft.com/en-us/download/details.aspx?id=20098下载SQLSRV32.EXE(Microsoft Drivers for PHP for SQL Server)

2.选择路径:C:\xampp\php\ext

3.取消注释或附加扩展名 = php.ini 中的 php_sqlsrv_56_ts.dll

4.从 XAMPP 控制面板重新启动 Apache(停止/启动)

我测试了它,它可以 100% 工作

【讨论】:

它说当我尝试重新启动 apache 时,程序入口点 _zval_ptr_dtor 无法位于动态链接库中 thewindowsclub.com/… 检查这个解决方案

以上是关于致命错误:未捕获的错误:调用 C:\xampp\htdocs\DBtest\sqlsrv.php:7 中的函数 sqlsrv_connect() 堆栈跟踪:#0 main SQLSERVER的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:未捕获的错误:在 null 上调用成员函数 select()

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

致命错误:未捕获的错误:调用未定义的方法 Connection::prepare() [重复]

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

Woocommerce 出现致命错误:未捕获的错误:调用未定义的方法 WooCommerce::get_image_size()

致命错误:未捕获错误:在null上调用成员函数select()