WordPress mysqli та 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?
Середній Joe

6
Wordpress використовує застарілі функції, оскільки mysql_connectофіційно знецінився, WP незабаром перейде до PDO (незабаром виповниться 1-2 роки). Ref: core.trac.wordpress.org/ticket/21663
Уїк

@AverageJoe ... так, як я вже сказав, WordPress використовує функції mysql. Як і Вік, я сподіваюся на PDO, але не знаю, яким шляхом він піде.
s_ha_dum

Дякуємо за траєкторію Wyck. s_ha_dum, будь ласка, включіть це посилання ( core.trac.wordpress.org/ticket/21663 ) у свою відповідь і виправте граматику, куди ви йдете "Якщо ви використовували їх з тих пір, як я пам'ятаю", коли ви отримаєте можливість. Дякую
Середній Joe

Трохи шишка. Це було написано один рік тому назад. Але сьогодні я вважаю, що ми маємо mysqli_ * у wordpress з моменту деяких версій, правда?
К. Кіліан Ліндберг

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/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.