WordPress mysqli et PDO

11

La base de code WordPress utilise-t-elle mysqli ou PDO?

Je sais que PDO est supérieur à mysqli mais mysqli n'est pas mal non plus. De plus, l'une des caractéristiques de ce qui rend PDO supérieur à mysqli (qui est indépendant de la base de données) ne signifie pas grand-chose pour WordPress car WordPress utilisera toujours le serveur mysql. Mais la liaison des paramètres avec les types de données est quelque chose que PDO prend en charge, mais pas mysqli et c'est une bonne chose.

Mes tripes me disent que WordPress utilise mysqli mais je ne pouvais pas encore le voir dans la base de code.

Ma deuxième question est de savoir si WordPress utilise mysqli, est-ce à cause de problèmes de vitesse ou est-ce parce qu'auparavant (lorsque WP était en cours de développement), PDO n'était pas encore là?

Moyenne Joe
la source

Réponses:

7

WordPress utilise des mysql_*fonctions .

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

Il s'en sert depuis que je me souvienne, ce qui répond probablement à votre dernière question. C'est ce que je considérerais comme du code hérité. Je soupçonne qu'il sera mis à jour très bientôt (ces fonctions n'étaient obsolètes que depuis PHP 5.5, je crois). Je ne sais pas quelle route développera.

Lien vers un billet à Trac, gracieuseté de Wyck (à partir d'un commentaire ci-dessous):

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

s_ha_dum
la source
J'ai vérifié le code sur wp-db.php. En ligne, 1133, il a la fonction db_connect et selon lui, ce n'est même pas mysqli. Je suis confus. la ligne 1143 a clairement ceci; $ this-> dbh = @mysql_connect ($ this-> dbhost, $ this-> dbuser, $ this-> dbpassword, $ new_link, $ client_flags); et selon le manuel PHP, ( php.net/manual/en/function.mysql-connect.php ), ceci est un code mysql, pas mysqli. WP utilise-t-il vraiment mysql?
Moyenne Joe
6
Wordpress utilise des fonctions obsolètes, car il mysql_connecta officiellement été amorti, wp devrait bientôt passer à PDO (bientôt 1-2 ans). Ref: core.trac.wordpress.org/ticket/21663
Wyck
@AverageJoe ... oui, comme je l'ai dit, WordPress utilise les fonctions mysql. Comme Wyck, j'espère pour AOP, mais je ne sais pas dans quelle direction cela ira.
s_ha_dum
Merci pour le lien trac Wyck. s_ha_dum veuillez inclure ce lien ( core.trac.wordpress.org/ticket/21663 ) dans votre réponse et corriger la grammaire où vous allez "Si j'en ai utilisé depuis que je m'en souvienne", lorsque vous en aurez l'occasion. Merci
Moyenne Joe
Une petite bosse. Cela a été écrit il y a un an. Mais aujourd'hui, je crois que nous avons mysqli_ * dans wordpress depuis certaines versions, non?
K. Kilian Lindberg
11

Une mise à jour pour Wordpress 3.9+ - avec PHP 5.5 dépréciant les mysql_*fonctions Wordpress a commencé à utiliser le mysqlis'il est disponible sur le serveur. Vos futurs plugins et codes devraient en tenir compte et cesser d'utiliser mysql_*. À l'heure actuelle, en 3.9, wordpress vérifie la disponibilité mysqliet l'utilise si disponible. Sinon, il utilise, mysql_*mais ce chèque sera retiré le plus tôt possible. En fin de compte, il semble qu'ils utiliseront, PDOmais c'est un projet plus vaste.

Voici une FAQ et une annonce à ce sujet:

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

themerlinproject
la source