更新WordPress以使用mysqli而不是mysql

时间:2015-12-23 10:25:23

标签: php mysql wordpress mysqli wpdb

我正在更新一个旧网站,其中包含最新版本的WordPress,并运行一些集成的纯PHP代码。 PHP代码使用旧的mysql_函数来运行数据库查询,因为我将PHP版本升级到5.6,我必须摆脱它们。

我开始只是将mysql_替换为mysqli_,但是,这会导致以下问题。如果您的查询之前有效:

mysql_query("SELECT...");

现在它抛出并出错,因为mysqli_query("SELECT...")期望第一个参数是与数据库的连接。

我能想到的一个解决方案是在任何地方使用$wpdb而不是普通的mysql函数,但是,代码有数千个查询并且替换所有这些查询会变得有点问题mysqli_query函数通常后跟mysqli_fetch等。

我倾向于的解决方案是以某种方式从WordPress使用的数据库中获取连接,将其保存在变量中,让我们说$con然后只搜索并替换所有当前mysqli_query(mysqli_query($con,。我认为这应该有效,但我不知道如何初始化$con变量,因为似乎无法从$wpdb变量获取连接?这里有两个问题:

  1. 实际上是否有办法通过$con或其他WordPress方法初始化$wpdb变量?

  2. 如果答案是否定的,那么通过创建与数据库的新mysqli连接并使用它来运行查询来实际初始化$con是否明智? (我知道答案是否定的,但因此我可能不得不在最后得到这个选项......)

  3. 奖金问题:有人可以从我已经提到过的问题中想到更好的解决方案/解决方案吗?

    谢谢!

1 个答案:

答案 0 :(得分:2)

首先,请检查此http://www.fileformat.info/info/unicode/char/2030/index.htm。它可以帮助您从mysql_*迁移到mysqli_*

如果没有,只需扩展 wpdb

  1. 使用“ $ dbh ”的getter编写一个类:

  2. 在任何地方使用它而不是基类(tool 可以帮忙)