WordPress MySQLi和PDO


11

WordPress代码库使用mysqli还是PDO?

我知道PDO优于mysqli,但mysqli也不错。再加上使PDO优于mysqli的功能之一(即与数据库无关)对WordPress并没有多大意义,因为WordPress将始终使用mysql服务器。但是PDO支持通过数据类型绑定参数,但是mysqli不支持,这是一件好事。

我的胆量告诉我WordPress确实使用mysqli,但我在代码库中还看不到它。

我的第二个问题是WordPress是否使用mysqli,是出于速度方面的考虑,还是因为早期(开发WP时)的PDO还不存在?

Answers:


7

WordPress使用mysql_*功能

http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/wp-db.php

自从我记得以来,它就使用了这些工具,这可能回答了您的最后一个问题。这就是我认为的遗留代码。我怀疑它将在不久的将来进行更新(我相信这些功能仅在PHP 5.5以后才被弃用)。我不知道该走哪条路。

链接到Wyck提供的Trac门票(来自以下评论):

http://core.trac.wordpress.org/ticket/21663


我在wp-db.php中检查了代码。1133在线,它具有db_connect函数,根据它,它甚至不是mysqli。我糊涂了。第1143行显然有这个;$ this-> dbh = @mysql_connect($ this-> dbhost,$ this-> dbuser,$ this-> dbpassword,$ new_link,$ client_flags); 根据PHP手册(php.net/manual/en/function.mysql-connect.php),这是mysql代码,不是mysqli。WP是否真的使用mysql?
平均乔

6
Wordpress使用的功能mysql_connect已过时,自从正式贬值以来,wp有望很快迁移到PDO(很快将是1-2年)。参考:core.trac.wordpress.org/ticket/21663
Wyck

@AverageJoe ...是的,就像我说的那样,WordPress使用mysql函数。像Wyck一样,我希望有PDO,但我不知道它会走哪条路。
s_ha_dum

感谢您的追踪链接Wyck。s_ha_dum请在您的答案中包括此链接(core.trac.wordpress.org/ticket/21663),并在可能的情况下更正“如果我曾经记住过的内容,请继续使用”的语法。谢谢
平均乔

有点颠簸。这是在一年前写的。但是今天,我相信自某些版本以来,我们在WordPress中有了mysqli_ *,对吗?
K. Kilian Lindberg 2014年

11

Wordpress 3.9+的更新-PHP 5.5不赞成使用mysql_*Wordpress 的功能(mysqli如果服务器上可用)已开始使用。您将来的插件和代码应考虑到这一点并停止使用mysql_*。目前,在3.9版中,wordpress会检查的可用性mysqli并使用(如果可用)。如果未使用mysql_*,则将在可能的最早的时​​候尽快删除该支票。似乎他们会继续使用,PDO但这是一个较大的项目。

这是一个常见问题和公告:

http://make.wordpress.org/core/2014/04/07/mysql-in-wordpress-3-9/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.