PHP 7.1.x - mysqli_connect 未定义(扩展已打开)

2023-11-30

背景

我的 Windows 10 计算机上安装了 WAMP Server (3.0.6)。我正在使用一些自定义 MySQL 表开发 WordPress 网站,所以我使用$wpdb.

Problem

我在 PHP 7.0.10 上运行,一切都很好。今天早上,我安装了 PHP 7.1.4,突然出现这个错误:

致命错误:未捕获错误:调用 ...\wp-includes\wp-db.php 中未定义的函数 mysql_connect():1573

我深入研究并将问题追溯到__construct()函数,并且这个if陈述:

if ( function_exists( 'mysqli_connect' ) ) {

var_dump 告诉我function_exists( 'mysqli_connect' )正在返回false.

enter image description here

不是答案

问题是NOT我没有mysqli扩展启用:

enter image description here

enter image description here

enter image description here

我尝试过的事情

我已经切换回7.0.x(并且错误消失),删除7.1.4,重新安装7.1.4,然后切换回它。它仍然不起作用。

我试过7.1.0,不行。

我尝试过打开和关闭扩展程序,但这没有任何改变。

我尝试过复制实际的php_mysqli.dll文件从工作 7.0.10 目录复制到 7.1.4 目录中,但这不起作用。

Edit

根据请求,我添加了所显示内容的屏幕截图phpinfo()。在 7.0 下,我看到 mysqli 的信息部分,而在 7.1 下,该部分丢失。

enter image description here enter image description here


背景

首先,了解一下 WAMPServer 的处理方式php.ini文件。如果你使用phpinfo(),您可能会注意到加载的路径ini文件是NOT the iniPHP 安装中的文件。相反,它指向 Apache 安装。

enter image description here

但如果你看一下它,它就是一个0KB符号链接。实际上是一个链接iniPHP 安装中的文件。但这不是php.ini,它改为指向phpForApache.ini。所以这:

...\wamp64\bin\apache\apache2.4.23\bin\php.ini

实际上是

...\wamp64\bin\php\php[VERSION]\phpForApache.ini

因此,您可以忽略 Apache 文件夹中的内容并专注于您的iniPHP 文件夹中的文件。然而,你不能忽视php.ini。您需要同时纠正两者。

感谢乔恩·斯特林建议检查加载的配置文件phpInfo().

我做了什么

我从 PHP 网站安装了 PHP 7.1,但忘记转移我的ini文件来自 PHP 7.0 安装。我改为使用默认值iniPHP网站提供的文件。

这不起作用,因为有一些调整ini让 PHP 与 WAMP 一起工作所需的文件。所以我复制了两个ini从我的 7.0.x 文件夹中删除文件,然后它开始工作,除了 mysqli 的错误之外。

我的问题的根本原因

挠了一个小时后,弗莱德-ii-'s 最后一个问题终于让我找到答案了。我让 PHP 尝试引用旧的扩展文件。原因如下:

The php.ini文件和phpForApache.ini文件,由 WAMP 提供,都硬编码了一些路径。例如,PHP 7.0.10 的扩展文件夹路径编码如下:

extension_dir ="c:/wamp64/bin/php/php7.0.10/ext/"

我已经复制了ini文件结束,但它们指向 7.0 的扩展文件夹。这dll7.0.x 的文件不适用于 7.1.x。

Answer

我进入了两个文件(php.ini phpForApache.ini)在 PHP 7.1.4 文件夹中,并将文本“7.0.10”的所有实例全局替换为“7.1.4”。现在一切正常了。

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

PHP 7.1.x - mysqli_connect 未定义(扩展已打开) 的相关文章

  • Doctrine QueryBuilder 重用部件

    我想计算所有符合我的条件的字段 并使用学说查询生成器逐页获取它们 我生成的查询取决于我的过滤器字段 第一部分是计算记录 以便我可以计算页数 qb em gt createQueryBuilder qb gt select COUNT m i
  • POST 之后在 PHP 中设置 Location 标头时避免 HTTP 302 响应代码

    我需要放一个201 CreatedPOST 请求的响应代码和 Location 标头 但由于某种原因我仍然收到 302 响应 这就是我所拥有的 header HTTP 1 1 201 header Location The new reso
  • File_get_contents($url): 无法打开流

    我有一个脚本 我使用以下方法读取文件 file get contents urlencode url 我收到此错误 failed to open stream HTTP request failed HTTP 1 0 400 Bad req
  • Laravel 5.3 withCount() 嵌套关系

    模型结构如下 教程 gt hasMany 章节 gt hasMany 视频 我们如何使用 laravel 5 3 的 withCount 方法从教程模型加载视频数量 video count 我努力了 Tutorial withCount c
  • 我无法访问 XAMPP phpMyAdmin;它说:错误 MySQL 说:文档无法连接:无效设置

    完整错误消息 Error MySQL said Documentation Cannot connect invalid settings Connection for controluser as defined in your conf
  • Ajax 刷新后的事件监听器

    我的网站上有一个结帐部分 我在数量部分运行此事件侦听器 以便每次根据单击的产品更新数量时 整个 div 都会使用 AJAX 重新加载 因此所有价格 总金额也会刷新 该代码可以工作一次 但之后该功能就不再工作了 cart product qu
  • Shift+Enter 按钮用于提交表单

    我想使用 Shift Enter 按钮提交表单 而不是简单地按 Enter 按钮 请帮助我 如果您仍然想这样做 尽管这会带来可用性问题 form keydown function e if e keyCode 13 e shiftKey W
  • Symfony2 - 多种形式的主题

    有没有办法在同一页面上的两个 或多个 表单使用不同的主题 我有 2 个表单 我想对第一个表单使用主题 X 对第二个表单使用主题 Y 您需要在显示表单之前声明您的主题 你应该试试 form theme form ThemeX html twi
  • PHP 邮件功能不发送任何消息[重复]

    这个问题在这里已经有答案了 我对问题所在感到困惑 在使用时没有收到任何电子邮件mailphp 函数 PHP HTML
  • 如何在 PHP 中执行 shell 脚本?

    我有一个脚本 var www myscript sh它创建文件夹并运行命令svn update对于我的项目 我需要通过在浏览器中的 PHP 文件中调用它来执行此脚本 即本地主机 test php 我尝试使用函数shell exec and
  • 使 Web 表单输入在各种情况下安全的正确方法是什么?

    你们都认为什么是正确的 阅读 最灵活 松散耦合 最健壮等 方法来使来自 Web 的用户输入安全地用于 Web 应用程序的各个部分 显然 我们可以为每个上下文 数据库 屏幕显示 保存在磁盘上等 使用各自的清理功能 但是是否有一些通用的 模式
  • 终端从包含空格的变量传递参数

    在终端中如何将包含空格的字符串作为参数传递 它实际上跳过了空格后面的部分 只取第一个单词 word soccer ball shell exec casperjs test js word word 那么我怎样才能转义空白它只运行这个命令
  • 使用命名占位符时 PHP/SQL 插入错误

    我有以下 PHP PDO 语句 STH this gt db gt prepare INSERT INTO UserDetails FirstName LastName Address City County PostCode Phone
  • 有没有办法通过给出整数值 PHP 来获取月份名称

    您好 我正在使用 PHP 我想传递一个整数值 1 12 并获取相应的月份名称 PHP 中有没有办法做到这一点 或者我必须通过初始化月份名称数组来完成自己的操作 我想做 month name get month name 1 echo mon
  • Razorpay 支付集成 -> 我如何检测关闭按钮 X 附近的 razorpay 模型

    我在 CI 框架中使用 Razorpay 当用户在没有付款的情况下关闭时 创建 razor 支付模型 然后对于取消订单 我希望通过状态更改为已取消来触发查询 那么我怎样才能检测到这一点 我已经在使用 by click jQuery 点击关闭
  • 访问php数组内部[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个像这样的数组打印 array 2 systems gt array 5 1 gt string 1 1111 2
  • WordPress ~ 如何在一页上显示多个 Google Chart?

    下面是我插入到 WordPress Visual Composer 中的原始 HTML 块中的一个 Google 图表的代码 图表 ID 名称为 chart div1 这适用于我的 WP 网页
  • 如何反转散列和加盐密码? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 vBulletin 登录使用它来交叉引用数据库 md5 md5 pass salt 我如何制作一个 PHP 脚本 以便每个密码
  • Php mod_rewrite 无法正常工作

    我有一个带有以下链接结构的 php 页面 http localhost wisper businesspage php profile creativeartbd 所以我尝试将此链接转换为以下样式 http localhost wisper
  • 字符串不等于其自身

    But why if i echo good else echo bad echos gt gt bad 您应该复制此片段 如果你手写的话 它会起作用 它让我疯狂 你太狡猾了 第二个 I 不是小写拉丁文小写 i 我把它转储了 hexdump

随机推荐

  • 滚动视图中的多个文本视图

    我有一项活动以文本形式显示步行方向 我有一组 TextView 其中 5 个包含 步骤 x 其中 x 是步骤号 另外 5 个 TextView 包含实际说明 问题是最后一个 TextView 离开屏幕 所以我想让这组 TextView 滚动
  • elasticsearch 2.0 父子孙子

    我的操作 父级 国家 地区 子级 分支机构 孙级 员工 PUT company 映射 分支 父 类型 国家 员工 父 类型 分支 我想添加一个孙子employee2 父级是分支 PUT company employee2 mapping e
  • 结构名称是否指向第一个元素?

    我发现了一些类似的问题 但没有一个有多大帮助 结构名称是否指向结构的第一个元素 类似于数组 struct example int foo int bar struct example e e foo 5 e bar 10 printf d
  • 隐藏提交按钮直到表单有效

    我对 Jquery 相当陌生 所以这可能是一个简单的问题 但是有没有办法隐藏表单上的提交按钮 直到验证所有字段 验证需要是 键入时 的解决方案 基本上我有 3 个字段 名字 姓氏和电子邮件 我希望提交按钮保持隐藏状态 直到填写了两个 名称
  • Ogre/Mogre:相机两点透视

    我正在显示一个场景 其中有一些立方体 相机采用的是透视法 一切都很好 但我希望垂直线是平行的 两点透视 http en wikipedia org wiki Perspective graphical 两点透视 从正面观察立方体时 我想要的
  • 如何将多列放入kivy RecycleView中?

    我想将 csv 表的数据放入 kivy recycleview 中 如果我为 kv 中的标签分配固定文本 我设法用一行插入多列 但我无法让它用字典列表中的数据填充标签 这是到目前为止我用来测试这个概念的代码 from kivy app im
  • 如何将存储过程的输出返回到sql server中的变量中

    我想在 SQL Server 中执行存储过程并将输出分配给变量 它返回单个值 这取决于您想要返回的信息的性质 如果它是单个整数值 则可以使用return陈述 create proc myproc as begin return 1 end
  • #include 检测到错误。请在 Visual Studio 代码中更新您的 includePath

    我正在尝试在 Visual Studio Code 中编译 C 文件如何使用 C C 扩展并添加包含路径到配置但我收到此错误 include errors detected Please update your includePath Sq
  • 使用javascript,如何在单击表格单元格时获取其背景颜色?

    我想要弹出一个警报 每当我单击它时 它都会显示表格单元格的背景 我似乎无法找到或弄清楚如何获取背景颜色 我的表格单元格如下所示 td 0 td 我的 selectCell 函数如下所示 function selectCell e alert
  • 如何在 C# 中将消息框显示为系统模式?

    如何在 C 中将消息框显示为系统模式 例如vbModal在 Visual Basic 6 中 使用 C MessageBoxIndirect 包装器进行高级 MessageBoxing
  • 将 Spring Security 与 SiteMinder 集成

    如何将 Spring Security 与 SiteMinder 集成以接收用户和角色 我有一个在内存中使用 Spring Security 的项目设置 我想使用它来接受具有用户和角色的 SiteMinder 标头 如果SiteMinder
  • 尝试使用 Scrapy 抓取 LinkedIn 时出现 999 响应

    我正在尝试使用 Scrapy 框架从 LinkedIn 中提取一些信息 我知道他们对尝试抓取其网站的人非常严格 因此我在 settings py 中尝试了不同的用户代理 我还指定了较高的下载延迟 但它似乎仍然立即阻止了我 USER AGEN
  • SKScene 无法释放内存,导致内存增长有限

    我已经为此苦苦挣扎了好几天 由于某种原因 我的 SKScenes 没有正确释放 这导致内存增长有限 因为每次我退出并进入场景时 内存都会跳跃 这意味着游戏进行 10 轮后应用程序崩溃 据我所知 经过多次检查后 我没有任何保留周期或对场景本身
  • C#:检测哪个应用程序具有焦点

    我希望创建一个 C 应用程序 根据当前具有焦点的应用程序来更改内容 因此 如果用户使用 Firefox 我的应用程序就会知道这一点 Chrome Visual Studio TweetDeck 等也是如此 这可能吗 如果可能的话 我将如何实
  • DispatchGroup 逻辑工作流程

    我正在尝试实施DispatchGroup如下 但如果第一个调用返回true 然后第二个返回false 那么总体结果将返回false 但是 如果第一个调用返回false 然后第二个返回true 那么总体结果将返回false这不是我所期望的 我
  • MATLAB:将字符转换为自定义数字并返回的最快方法

    我正在寻找一种快速方法 将小写字母 空格和句点组成的大型字符数组转换为一组整数 反之亦然 通常我会使用 double 和 char 函数 但我想使用一组特殊的整数来表示每个字母 以便 a 与 1 匹配 b 与 2 匹配 z 与 26 匹配
  • 获取“运行 management.uninstall 时未选中的 runtime.lastError:”

    我正在编写一个 Chrome 扩展程序 我想在其中卸载另一个扩展程序 我正在关注文档 但收到此错误 Unchecked runtime lastError while running management uninstall chrome
  • 复制,但仅粘贴值? [复制]

    这个问题在这里已经有答案了 我有一个宏来根据过滤器复制数据 但是一些正在复制的单元格中已经有公式 所以我想复制它并仅粘贴为文本或值 我尝试使用以下内容 我尝试了 xlValues 和 Format text 它们都给出了错误 Run Tim
  • 将列表按元素附加到 R 中嵌套列表的元素

    我是 R 新手 仍在尝试了解 apply 系列而不是使用循环 我有两个列表 一个是嵌套的 另一个不是 两者都由字符组成 gt lst1 lt list c ABC DEF GHI c JKL MNO PQR gt lst2 lt c abc
  • PHP 7.1.x - mysqli_connect 未定义(扩展已打开)

    背景 我的 Windows 10 计算机上安装了 WAMP Server 3 0 6 我正在使用一些自定义 MySQL 表开发 WordPress 网站 所以我使用 wpdb Problem 我在 PHP 7 0 10 上运行 一切都很好