WordPress mysqli und PDO


11

Verwendet die WordPress-Codebasis mysqli oder PDO?

Ich weiß, dass PDO mysqli überlegen ist, aber mysqli ist auch nicht schlecht. Außerdem bedeutet eine der Funktionen, die PDO gegenüber mysqli (dh datenbankunabhängig) überlegen macht, für WordPress nicht viel, da WordPress immer mysql-Server verwendet. Das Binden von Parametern mit Datentypen wird jedoch von PDO unterstützt, mysqli jedoch nicht, und es ist eine gute Sache.

Mein Mut sagt mir, dass WordPress mysqli verwendet, aber ich konnte es noch nicht in der Codebasis sehen.

Meine zweite Frage ist, ob WordPress mysqli verwendet, ob es sich um Geschwindigkeitsprobleme handelt oder ob PDO in früheren Tagen (als WP entwickelt wurde) noch nicht da war.

Antworten:


6

WordPress verwendet mysql_*Funktionen .

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

Es hat diese verwendet, seit ich mich erinnern kann, was wahrscheinlich Ihre letzte Frage beantwortet. Es ist das, was ich als Legacy-Code betrachten würde. Ich vermute, dass es bald aktualisiert wird (diese Funktionen waren, glaube ich, erst ab PHP 5.5 veraltet). Ich weiß nicht, in welche Richtung die Entwicklung gehen wird.

Link zu einem Ticket in Trac, mit freundlicher Genehmigung von Wyck (aus einem Kommentar unten):

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


Ich habe den Code unter wp-db.php überprüft. Online, 1133, hat es die Funktion db_connect und demnach ist es nicht einmal mysqli. Ich bin verwirrt. Zeile 1143 hat dies eindeutig; $ this-> dbh = @mysql_connect ($ this-> dbhost, $ this-> dbuser, $ this-> dbpassword, $ new_link, $ client_flags); und laut PHP-Handbuch ( php.net/manual/en/function.mysql-connect.php ) ist dies ein MySQL-Code, nicht MySQL. Verwendet WP wirklich MySQL?
Durchschnittlicher Joe

6
Wordpress verwendet veraltete Funktionen, da mysql_connectwp offiziell abgeschrieben wurde, wird wp hoffentlich bald auf PDO umsteigen (bald 1-2 Jahre). Ref: core.trac.wordpress.org/ticket/21663
Wyck

@AverageJoe ... ja, wie gesagt, WordPress verwendet MySQL-Funktionen. Wie Wyck hoffe ich auf PDO, aber ich weiß nicht, in welche Richtung es gehen wird.
s_ha_dum

Vielen Dank für den Trac-Link Wyck. s_ha_dum Bitte fügen Sie diesen Link ( core.trac.wordpress.org/ticket/21663 ) in Ihre Antwort ein und korrigieren Sie die Grammatik, in der Sie "Wenn Sie diese verwendet haben, seit ich mich erinnern kann" angeben , wenn Sie eine Chance bekommen. Vielen Dank
Durchschnitt Joe

Eine kleine Beule. Dies wurde vor einem Lichtjahr geschrieben. Aber heute glaube ich, dass wir seit einigen Versionen mysqli_ * in WordPress haben, oder?
K. Kilian Lindberg

10

Ein Update für Wordpress 3.9+ - mit PHP 5.5, das die mysql_*Funktionen, die Wordpress verwendet, nicht mehr verwendet, mysqliwenn es auf dem Server verfügbar ist. Ihre zukünftigen Plugins und Codes sollten dies berücksichtigen und nicht mehr verwenden mysql_*. Derzeit prüft WordPress in Version 3.9 die Verfügbarkeit mysqliund verwendet sie, falls verfügbar. Wenn dies nicht der mysql_*Fall ist, wird dieser Scheck zum frühestmöglichen Zeitpunkt entfernt. Die Straße runter scheint es PDO, dass sie verwenden werden, aber das ist ein größeres Projekt.

Hier ist eine FAQ und Ankündigung dazu:

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.