【问题标题】:Need help converting MySQL to MySQLI in Wordpress需要帮助在 Wordpress 中将 MySQL 转换为 MySQLI
【发布时间】: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)"

标签: php mysql wordpress mysqli migrate


【解决方案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”的过时插件引起的。
猜你喜欢
  • 1970-01-01
  • 2010-12-22
  • 2023-03-03
  • 2013-06-28
  • 2018-11-24
  • 2019-12-23
  • 2021-11-06
  • 2016-12-17
  • 1970-01-01
相关资源
最近更新 更多