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

2023-12-04

我正在尝试连接到我们可以通过“Microsoft SQL Server Management Studio”访问的 SQL Server:

enter image description here

我已经尝试了很多我在 SO 上看到的不同的东西,但没有任何效果。我收到错误Fatal error: Uncaught Error: Call to undefined function sqlsrv_connect() in C:\Apache24\htdocs\test.php:52 Stack trace: #0 {main} thrown in C:\Apache24\htdocs\test.php on line 52当运行以下代码时test.php page:

$serverName = "SERVER.DOMAIN.COM, 1433"; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"DB_NAME", "UID"=>"USER", "PWD"=>"PASS");
$ma_conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $ma_conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}

我的 php.ini 文件已启用许多不同的扩展,但没有一个起作用。我已经尝试了以下所有方法:

extension = php_sqlsrv_56_ts.dll
extension=php_sqlsrv_55_ts.dll
extension=php_sqlsrv_55_nts.dll
extension=php_sqlsrv_55_ts.dll
extension=php_pdo_sqlsrv_55_ts.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll

目前我有:

extension_dir = "c:\apache24\php7\ext\"
extension=php_pdo.dll
extension=php_pgsql.dll
[PHP_SQLSRV]
extension=php_sqlsrv_54_ts.dll
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_54_ts.dll

在 CMD 中使用 Apache 和 PHP 的机器上,我得到以下信息:

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Windows\system32>php -c c:\apache24\php7\php.ini -v -display_startup_errors=1

PHP Warning:  PHP Startup: Unable to load dynamic library 'c:\apache24\php7\ext\ php_pdo.dll' - %1 is not a valid Win32 application.
 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'c:\apache24\php7\ext\ php_sqlsrv_54_ts.dll' - %1 is not a valid Win32 application.
 in Unknown on line 0 PHP
Warning:  PHP Startup: Unable to load dynamic library 'c:\apache24\php7\ext\ php_pdo_sqlsrv_54_ts.dll' - %1 is not a valid Win32 application.
 in Unknown on line 0
PHP 7.0.10 (cli) (built: Aug 18 2016 09:48:53) ( ZTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

C:\Windows\system32>

我也下载并运行SQLSRV32.EXE里面的C:\Apache24\php7\ext folder.

I have:

  • Windows Server 2012 RS win64
  • 阿帕奇 2.4.23 win64
  • PHP 7.0.10 win64
  • Microsoft SQL Server 2012 本机客户端 win64
  • Microsoft Visual C++ 2012 x64 和 x86 可再发行组件(两种不同)
  • Microsoft Visual C++ 2015 可再发行组件(x64 和 x86)- 14.0.23026
  • 适用于 SQL Server 的 Microsoft ODBC 驱动程序 11

enter image description here

enter image description here


符合 php.ini 中的尝试列表(php_sqlsrv_XX_ts.dll),您已激活 PHP v5.5 和 v5.6 的扩展。但是,由于您运行的是 PHP 7.0,因此您需要下载并激活相应的适用于 SQL Server 的 PHP 的 Microsoft 驱动程序。看来你需要下载驱动版本4.0。这是在SQLSRV 扩展的 php.net 页面.

SQLSRV 扩展受 Microsoft 支持,可用于 在这里下载:http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.

您可以在这里找到相关说明加载 PHP SQL 驱动程序。您可能会收到类似的文件php_sqlsrv_7_XX.dll with XX:“ts”或“nts”(线程安全或非线程安全)。我认为你需要线程安全版本。

否则,使用MS SQL 服务器 (PDO)PDO 驱动程序(阅读链接中的“安装”部分!)PDO_SQLSRV DSN(连接字符串)和PDO一般功能,例如所有驾驶员共有。该驱动程序将添加到 php.ini 中,如下所示extension=php_pdo_sqlsrv_7_ts.dll然后(查看同一页面的说明:加载 PHP SQL 驱动程序)。如果你问我,我真的会选择这个选项。

诺塔·贝尼:每次更改配置后,不要忘记重新启动 Web 服务器和/或数据库服务!

祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

致命错误:未捕获错误:调用未定义的函数 sqlsrv_connect() 的相关文章

  • Magento - 从观察者方法重定向客户

    在本次活动中checkout cart add product complete 我希望客户被重定向到外部网页http www example com 为此 我使用这段代码 它根本不起作用 public function moduleMet
  • WordPress Tax_query“和”运算符未按预期运行

    我有一个自定义帖子类型image自定义分类法称为图片标签 它像类别一样分层 以下是可能使用的标签的一些示例 Structure id 25 House id 56 Skyscraper Nature Animal Plant id 41 因
  • PHP表单提交后如何显示成功消息?

    这是代码 我想要这样 表单提交 gt page2 php gt 重定向 gt page1 php 这是消息 弹出窗口或其他内容 page1 php
  • php , simple_html_dom.php, 获取所选选项

    我有一个像这样的 html 块 localurl
  • 如何从MySQL数据库获取今天/昨天的数据?

    我想从数据库中检索今天的数据 但我不知道该怎么做 我实际上想要获取不是过去 24 小时的数据 我只想获取今天的数据 因此基于实际服务器时间 我还想获取昨天的数据 谁能帮我怎么做 示例代码 SELECT id FROM folk WHERE
  • Pinterest 身份验证 url 返回 404 错误?

    我正在测试 pinterest apihttp pinterest com developers api http pinterest com developers api 在上面的身份验证部分的网址上 它说我必须将用户重定向到 pinte
  • 检查用户是否连接到 Facebook,然后检查他是否喜欢某个页面

    有没有什么方法可以检查用户是否在我的外部页面上连接到 Facebook 而不让他们允许我的应用程序之一 同样的问题也适用于 检查用户是否喜欢某个页面 我检查了大约 20 个问题和 3 4 个教程 似乎所有问题都在讨论内部脚本 粉丝页面 应用
  • ResourceBundle 返回 NULL,没有引发任何错误

    对于国际化数据 与 ResourceBundle来自 PHP 的 intl 扩展的类 我运行了扩展 PHP 5 3 4 Windows 并使用以下命令创建了一个 dat 文件ICU 数据库定制器 http apps icu project
  • 类别树的路由

    我正在使用Tree http www gediminasm org article tree nestedset behavior extension for doctrine 2类别树的学说扩展并希望有如下路线 cat subcat1 s
  • Oracle 中仅在一列上不同

    我想在下表中使用不同的值 但仅在 PlayerID 列上使用 这就是我现在所拥有的 MATCHID PLAYERID TEAMID MATCHDATE STARTDATE 20 5 2 14 JAN 12 01 JUN 11 20 5 4
  • 将 NULL 变量插入数据库

    我将变量设置为 NULL 我试图将其插入数据库 但由于某种原因 它们一直以 0 的形式提交 我确信我试图插入的列允许 NULL 并且默认值设置为 NULL 这是我的代码 insert NULL query mysql query INSER
  • 在 TCPDF 中设置背景颜色

    我已经手动设置了第一页的背景颜色 如下所示 pdf gt AddPage pdf gt SetFillColor 52 21 0 76 pdf gt Rect 0 0 pdf gt getPageWidth pdf gt getPageHe
  • PHP 继承以及静态方法和属性

    PHP 中的静态属性和方法不能被继承吗 一些例子会有所帮助 不 那不是真的 静态方法和属性 http www php net manual en language oop5 static php将会得到遗传 http www php net
  • 如何在 PHP 中上传 .txt 文件并在另一页面上逐行读取该文件?

    我的目标是在表单上上传 txt 文件 浏览 将文件发布到另一个 php 页面 然后逐行读取该文件 到目前为止我的代码就在这里 文件 1 HTML 上传
  • 无法使用模式 r: fopen(): AWS Elastic Beanstalk 打开

    错误 无法使用模式 r fopen 打开 文件名不能为空当我尝试上传较大的文件 超过 5MB 时 我不断收到此错误 我已将 PHP 应用程序上传到 AWS Elastic Beanstalk 并将文件上传到 AWS S3 我的代码中甚至没有
  • 是否可以在 php.ini 中指示 PHP 使用 postfix 配置?

    是否可以配置 PHP 使用 postfix 的配置集发送电子邮件 WordPress 通过 PHPMailer 依赖于 php ini 中的这些设置是否正确 SMTP localhost http php net smtp port smt
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • MySQL 的 TEXT 类型的 Oracle 等效项

    Oracle 是否有与 MySQL 等效的列类型TEXT type 如果不是 那么通常如何存储较大的文本块 BLOB varchar 32767 如果重要的话 它是通过 PHP 访问 Oracle 10 历史背景是非常受欢迎的 Oracle
  • 安装solr并索引mysql

    任何人都可以帮助我安装 solr 并将其配置到 mysql 表 我已经尝试了几乎所有教程 我尝试了 Jetty 也尝试了 tomcat 仍然收到诸如数据处理程序未定义或找不到 solr 之类的错误 已经一周了 我我一整天都在努力 为了让 s
  • 在网络托管上发布后,php 会话无法正常工作

    我的网站在本地主机上运行良好 但是一旦我将其部署到我的托管服务 会话就会停止工作

随机推荐

  • 在 R 中使用 osmplotr 和 OpenStreetmap 绘制海域

    我正在尝试使用 Openstreetmap 通过osmplotrCRAN 上的软件包 绘制海岸线并将大海涂成蓝色 因为大海不是多边形 所以我尝试使用osm line2poly 将线条变成多边形 然而 下面的最小可重现示例给出了以下错误 Er
  • 使用 hbase 处理图像、视频和音频类型

    任何人都知道如何使用 Hbase 处理音频 视频和图像等非结构化数据 我尝试了很多 但没有任何想法 请提供任何帮助 选项1 将图像转换为字节数组 您可以准备放置请求并插入到表中 同样也可以实现音频和视频文件 See https docs o
  • C语言中的对象

    即使我浏览了一些 C 语言教程 笔记 我还是遇到了 对象 这个术语 我一直想知道对象与过程语言有什么关系 深入一点我可以理解 占用一块内存的东西在c中被称为 对象 我的问题是我的理解是否正确或者是否有我遗漏的东西 谢谢 来自C99标准草案
  • 如何存储/检索 RSA 公钥/私钥

    我想使用RSA公钥加密 存储或检索私钥和公钥的最佳方法是什么 XML 在这里是个好主意吗 如何获得钥匙 RSAParameters privateKey RSA ExportParameters true RSAParameters pub
  • ExpressJS:每 24 小时运行一次函数

    在 ExpressJS 中每 24 小时运行一次自动化函数的最简单方法是什么 除了运行无限循环之外 我到处寻找解决方案 原则上这是唯一的方法吗 你需要使用节点 cron npm var cron require node cron cron
  • 为什么 Ruby `**` 运算符的优先级高于一元 `-` ?

    这会导致这样的情况 1 0 5 gt 1 只有括号可以解决这个问题 1 0 5 gt 6 123031769111886e 17 1 0i 这比预期的要差1 i 但基本可以接受 在我去抱怨 Ruby bug 之前 我想知道是否有某种原因造成
  • 有没有办法提高FlyingSaucer的性能?

    我已经关注了本文使用 FlyingSaucer 将 XHTML 转换为 PDF 这很出色 但有一个重大缺点 速度慢得离谱 我发现从 XHTML 渲染 PDF 需要 1 到 2 分钟 无论该页面多么简单 基本代码 import java io
  • VBscript 代码捕获标准输出,而不显示控制台窗口

    这是一个 VBScript 代码示例 展示了如何捕获命令行程序发送到标准输出的任何内容 它执行命令xcopy 并在消息框中显示输出 在消息框出现之前 您会看到控制台窗口突然弹出 Set objShell WScript CreateObje
  • 使用指针了解数组的大小

    我如何使用使用 malloc 分配的指针知道数组的大小 include
  • Java:从字节数组中删除连续的零段

    例如 假设我想从数组中删除所有长度超过 3 个字节的连续 0 段 byte a 1 2 3 0 1 2 3 0 0 0 0 4 byte r magic a System out println r result 1 2 3 0 1 2 3
  • .NET 最好的音频压缩库是什么?

    我正在寻找一个好的 NET 音频压缩库 任何使用 MP3 的东西都已经过时了 因为许可问题 基本上我只需要能够将常规 WAV 音频数据压缩为某种格式 然后解压缩回 WAV 最好代码全部是 NET C 或 VB NET 但我认为这不太可能 它
  • 用于从 Google 表单获取平均分数和电子邮件的 Google 脚本(如测验)

    我需要一个 Google 脚本 GAS 来从已转换为测验的 Google 表单中检索电子邮件和总分 在GAS中你可以得到每个问题的分数 但我需要得到所有问题的分数 然后平均得出最终分数 每个测验有20个问题 我还需要每个完成测验的人的电子邮
  • R - ggplot 轴数字格式 - 删除前导零

    从 R ggplot geom bar 轴删除前导零的选项 代码是什么 即 我希望 0 05 显示为 0 05 我能找到的只是内置格式 如百分比 逗号等 thx 作为受 m evans 给出的答案启发的简单替代方案 可以使用以下方法轻松实现
  • 使用 Dataview.RowFilter 从 SomeTable 中选择 TOP 5 *?

    我需要从缓存的 Dataview 对象中选择最近的 5 行 有什么方法可以做到这一点吗 我已经尝试过 但索引器数据列是空的 public static DataView getLatestFourActive DataTable produ
  • 委托的构造函数和成员函数在哪里定义?

    当我在看的时候ActionReflector 中的委托 我看到它有一个像这样的构造函数 public Action object object IntPtr method 但我找不到任何机构以及其他成员职能 例如Invoke BeginIn
  • MYSQLI准备语句bind_param类型不起作用

    我已经使用准备好的插入语句好几年了 并假设它正确绑定了参数 否则会给出错误 但它似乎不像以下 php 绑定并插入记录而没有任何错误 而是将应该是 int 的字符串更改为零 因此 它可能可以防止 SQL 注入攻击 但最终会在表中得到虚假记录
  • Monotouch:在 iPhone 上关闭飞行模式后 WebRequest 连接失败

    我的单点触控应用程序正在与网络服务进行定期后台同步 它运行完美并正确检测飞行模式 当我关闭 WiFi 时 它会自动开始使用 WWAN GPRS 3G 连接 到目前为止 我非常满意 但是 关闭飞行模式后 当没有可用的 WiFi 时 我的应用程
  • 类型错误:列表索引必须是整数,而不是 str Python [重复]

    这个问题在这里已经有答案了 list s 是一个字符串 为什么这不起作用 出现以下错误 类型错误 列表索引必须是整数 而不是 str list abc def map list for s in list t list s 1 map li
  • 如果数组包含值,Mongoose 查找文档

    所以我有这个模式 const Document new mongoose Schema id type Number creationDate type Date default Date now title String status t
  • 致命错误:未捕获错误:调用未定义的函数 sqlsrv_connect()

    我正在尝试连接到我们可以通过 Microsoft SQL Server Management Studio 访问的 SQL Server 我已经尝试了很多我在 SO 上看到的不同的东西 但没有任何效果 我收到错误Fatal error Un