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


Я проверил код на 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/

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.