WordPress mysqli y PDO

11

¿La base de código de WordPress usa mysqli o PDO?

Sé que PDO es superior a mysqli pero mysqli tampoco está mal. Además, una de las características de lo que hace que PDO sea superior a mysqli (que es ser independiente de la base de datos) no significa mucho para WordPress, ya que WordPress siempre usará el servidor mysql. Pero vincular parámetros con tipos de datos es algo que PDO admite, pero mysqli no y es algo bueno.

Mis agallas me dicen que WordPress sí usa mysqli, pero aún no podía verlo en la base del código.

Mi segunda pregunta es si WordPress está usando mysqli, ¿es por problemas de velocidad o porque en los días anteriores (cuando se estaba desarrollando WP), PDO aún no estaba allí?

Joe promedio
fuente

Respuestas:

6

WordPress usa mysql_*funciones .

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

Los ha usado desde que tengo memoria, lo que probablemente responde a su última pregunta. Es lo que consideraría código heredado. Sospecho que se actualizará pronto (creo que esas funciones solo quedaron obsoletas a partir de PHP 5.5). No sé a qué ruta irá el desarrollo.

Enlace a un boleto en Trac, cortesía de Wyck (de un comentario a continuación):

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

s_ha_dum
fuente
Revisé el código en wp-db.php. En línea, 1133, tiene la función db_connect y de acuerdo con esto, ni siquiera es mysqli. Estoy confundido. la línea 1143 claramente tiene esto; $ this-> dbh = @mysql_connect ($ this-> dbhost, $ this-> dbuser, $ this-> dbpassword, $ new_link, $ client_flags); y de acuerdo con el manual de PHP, ( php.net/manual/en/function.mysql-connect.php ), este es un código mysql, no mysqli. ¿WP realmente usa mysql?
Promedio Joe
66
Wordpress utiliza funciones obsoletas, ya que mysql_connectoficialmente se ha depreciado, wp se trasladará con suerte a PDO pronto (pronto será de 1 a 2 años). Ref: core.trac.wordpress.org/ticket/21663
Wyck
@AverageJoe ... sí, como dije, WordPress usa funciones mysql. Al igual que Wyck, espero la DOP, pero no sé qué camino tomará.
s_ha_dum
Gracias por el enlace de seguimiento Wyck. s_ha_dum por favor incluya este enlace ( core.trac.wordpress.org/ticket/21663 ) en su respuesta y corrija la gramática a la que va "Si los ha usado desde que tengo memoria", cuando tenga la oportunidad. Gracias
Joe promedio
Un pequeño bulto. Esto fue escrito hace un año luz .. Pero hoy creo que tenemos mysqli_ * en WordPress desde algunas versiones, ¿verdad?
K. Kilian Lindberg
10

Una actualización para Wordpress 3.9+: con PHP 5.5 en desuso las mysql_*funciones que Wordpress ha comenzado a usar mysqlisi está disponible en el servidor. Sus futuros complementos y código deben tener esto en cuenta y dejar de usar mysql_*. En este momento, en 3.9, WordPress verifica la disponibilidad mysqliy la usa si está disponible. Si no es así, mysql_*pero ese cheque se eliminará lo antes posible. En el futuro parece que van a utilizar, PDOpero ese es un proyecto más grande.

Aquí hay un FAQ y un anuncio al respecto:

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

themerlinproject
fuente