WordPress mysqliおよびPDO


11

WordPressコードベースはmysqliまたはPDOを使用しますか?

PDOはmysqliよりも優れていますが、mysqliも悪くありません。さらに、PDOがmysqliより優れている(つまり、データベースにとらわれない)機能の1つから、WordPressは常にmysqlサーバーを使用するため、WordPressに大きな意味はありません。しかし、paramsをデータ型にバインドすることはPDOがサポートするものですが、mysqliはサポートしておらず、それは良いことです。

WordPressはmysqliを使用しているが、コードベースではまだそれを確認できなかったようです。

私の2番目の質問は、WordPressがmysqliを使用しているかどうか、それは速度の問題のためか、それとも以前の時代(WPが開発されていたとき)に戻ったためか、PDOはまだそこにありませんでしたか?

回答:


6

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)によると、これはmysqliではなく、mysqlコードです。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 2013

tracリンクWyckをありがとう。s_ha_dumは、このリンク(core.trac.wordpress.org/ticket/21663)を回答に含めて、機会があれば、「覚えているからこれまで使用したことがある」という文法を修正してください。ありがとう
平均ジョー

少しバンプ。これは1光年前に書かれました。しかし、今日、いくつかのバージョンから、ワードプレスにmysqli_ *があると思いますよね?
K.キリアンリンドバーグ

10

Wordpress 3.9+のアップデート-PHP 5.5でのmysql_*機能の廃止Wordpressがmysqliサーバーで利用可能な場合に使用を開始しました。将来のプラグインとコードはこれを考慮に入れ、の使用を停止する必要がありますmysql_*。現在、3.9では、WordPressはが利用可能かどうかをチェックし、利用mysqli可能な場合はそれを使用します。使用しない場合mysql_*、そのチェックはできるだけ早く削除されます。将来的には彼らが使用するようPDOですが、それはより大きなプロジェクトです。

ここにFAQとその発表があります:

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.