我正在更新一个旧网站,其中包含最新版本的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
变量获取连接?这里有两个问题:
实际上是否有办法通过$con
或其他WordPress方法初始化$wpdb
变量?
如果答案是否定的,那么通过创建与数据库的新mysqli连接并使用它来运行查询来实际初始化$con
是否明智? (我知道答案是否定的,但因此我可能不得不在最后得到这个选项......)
奖金问题:有人可以从我已经提到过的问题中想到更好的解决方案/解决方案吗?
谢谢!
答案 0 :(得分:2)
首先,请检查此http://www.fileformat.info/info/unicode/char/2030/index.htm。它可以帮助您从mysql_*
迁移到mysqli_*
。
如果没有,只需扩展 wpdb :
使用“ $ dbh ”的getter编写一个类:
在任何地方使用它而不是基类(tool 可以帮忙)