【问题标题】: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(线程安全版本)。

标签: php sql-server sql-server-2012 sql-server-2008-r2 sqlsrv


【解决方案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 无法位于动态链接库中
  • 检查这个解决方案
猜你喜欢
  • 2021-09-04
  • 1970-01-01
  • 2015-08-24
  • 2016-09-19
  • 2016-06-07
  • 2021-09-16
  • 2018-04-16
  • 2023-03-18
  • 1970-01-01
相关资源
最近更新 更多