WordPress MySQL и PDO

11

Использует ли база кода WordPress mysqli или PDO?

Я знаю, что PDO превосходит mysqli, но mysqli тоже неплох. Плюс одна из особенностей того, что делает PDO превосходящим mysqli (то есть независимость от базы данных), мало что значит для WordPress, так как WordPress всегда будет использовать сервер mysql. Но связывание параметров с типами данных - это то, что PDO поддерживает, а mysqli - нет, и это хорошо.

Мои смелости говорят мне, что WordPress использует mysqli, но я пока не вижу его в базе кода.

Мой второй вопрос: если WordPress использует mysqli, это из-за проблем со скоростью или потому, что в прежние времена (когда разрабатывался WP), PDO еще не было?

Средний Джо
источник

Ответы:

7

WordPress использует mysql_*функции .

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

Он использовал их с тех пор, как себя помню, что, вероятно, отвечает на ваш последний вопрос. Это то, что я считаю устаревшим кодом. Я подозреваю, что это будет обновлено в ближайшее время (я полагаю, что эти функции устарели только в PHP 5.5). Я не знаю, какой маршрут пойдет.

Ссылка на билет в Trac, любезно предоставленной Wyck (из комментария ниже):

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

s_ha_dum
источник
Я проверил код на 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. Как и Вик, я надеюсь на PDO, но я не знаю, каким будет путь.
s_ha_dum
Спасибо за трак ссылку Wyck. s_ha_dum, пожалуйста, включите эту ссылку ( core.trac.wordpress.org/ticket/21663 ) в свой ответ и исправьте грамматику, в которой вы говорите: «Если я использовал это с тех пор, как я себя помню», когда у вас будет возможность. Спасибо
Средний Джо
Небольшая шишка Это было написано один легкий год назад .. Но сегодня я считаю, что у нас mysqli_ * в WordPress с некоторых версий, верно?
К. Килиан Линдберг
11

Обновление для 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/

themerlinproject
источник