需要帮助在 Wordpress 中将 MySQL 转换为 MySQLI

Posted

技术标签:

【中文标题】需要帮助在 Wordpress 中将 MySQL 转换为 MySQLI【英文标题】:Need help converting MySQL to MySQLI in Wordpress 【发布时间】:2015-09-25 19:34:06 【问题描述】:

mysql 扩展现已弃用,我需要将我的 WordPress 网站转换为 MYSQLI。我是 php 的完全初学者,我真的迷路了。

我正在尝试使用转换器工具 (https://github.com/philip/MySQLConverterTool) 并按照这些说明进行操作 https://wikis.oracle.com/display/mysql/Converting+to+MySQLi,但我无法让该工具工作。

我将它上传到我的 SFTP,这是路径 example.com/MySQLConverterTool/GUI/convert_directory.php 但每次我尝试将任何目录转换为 MySQL 时,它都会显示“在指定目录中找不到匹配的文件”。

说明说“将转换器工具指向 WordPress 的安装路径”,并且由于 WordPress 安装在我的根目录上,这是否意味着安装路径是 example.com/ ?我已经尝试过 example.com/wp-content、example.com/wp-admin 等,并且对于我尝试的每个目录,它都会显示“在指定目录中找不到匹配的文件”。

我是否指向错误的目录?该工具是否应该放在不同的文件夹中?

我愿意尝试手动转换为 MySQLI,但我不知道从哪里开始,就像我说我对 PHP 知之甚少。

请帮忙!

【问题讨论】:

老实说,我会使用 PDO,它要好得多。但是这些 mysql 调用是从哪里来的呢? WordPress的?我应该认为最新的安装会为您做到这一点。 啊,这与 Wordpress 无关。您必须有一些自定义编写的代码,通过 not 使用原生 Wordpress 方法来对抗 Wordpress。否则,Wordpress 将自动选择 mysqli_,因为类似于 2.0.5 而我们现在使用的是 4.2.2。不幸的是,您将无法使用“自动转换器工具”,这些工具被广泛推崇并被认为是实用的,但是它们几乎无法正常工作。 该自动转换工具不适用于 WordPress。即使它使用标记器方法,它也只适用于遗留应用程序中散布的字面 mysql_* 调用。像最近的 WP 版本那样更抽象的数据库 API 不是。 -- 如果你不是很懂 PHP,那么不,手动转换也是不可取的。 ——不是说这是一个坏问题。只是无法回答。 (顺便说一句,您可能已经将 URL 与本地文件路径混淆了。) 我的 WordPress 是最新的(版本 4.2.2),我只想使用 MySQLI,因为我的整个网站都坏了,当我问我的托管公司该怎么做(WP 引擎)时,他们说我需要将我的代码转换为 MySQLI。 好的,关于我需要做什么的任何建议或文档?这是我的网站收到的错误“无法从 wp_simple_shortcodes 成功运行查询(SELECT name, value FROM wp_simple_shortcodes WHERE 1):无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器”( 13)" 【参考方案1】:

WordPress 使用自己的数据库抽象类called WPDB,用于 WordPress 和 WordPress 插件。您还可以了解有关 WordPress Database API 的更多信息。此外,我查看了 src/wp-includes/wp-db.php 文件,该文件表明 WordPress 将在需要时回退到 MYSQLi。

【讨论】:

好的,我的 WordPress 是最新的,所以它应该会自动选择 MySQLI。但是我的网站将无法加载并且收到此错误“无法从 wp_simple_shortcodes 成功运行查询(SELECT name, value FROM wp_simple_shortcodes WHERE 1):无法通过套接字连接到本地 MySQL 服务器'/var/run/mysqld/mysqld。 sock'(13)" 那么我需要哪些文件来更新代码?我从来没有为这个网站写过任何自定义的 php 代码。它可能来自插件吗? 您最近是否对 WordPress 进行了任何更改(安装/删除插件、更新 WP 等)?看起来好像 MySQL db 本身有问题,或者您的本地配置文件有误。查看codex.wordpress.org/… 以获得后者,如果所有检查都在那里,请与您的托管服务提供商联系。 好的,感谢您的帮助。我发现这是由使用旧版本 PHP 的名为“Simple Shortcodes”的过时插件引起的。

以上是关于需要帮助在 Wordpress 中将 MySQL 转换为 MySQLI的主要内容,如果未能解决你的问题,请参考以下文章

如何在 phpMyAdmin 中将 MySQL 版本升级到最新版本?

如何在wordpress中将localhost url更改为ip?

如何在 wordpress 中将单选按钮添加到我的网站

在 Wordpress 中将 SQL Server 表打印到网站?

在MYSQL中将日期转换为日期范围---如何处理日期中的间隙

如何在搬运工中将两个 docker 容器相互连接