WordPress mysqli și PDO
Baza de cod WordPress folosește mysqli sau PDO?
Știu că PDO este superior față de mysqli, dar nici mysqli nu este rău. Plus, una dintre caracteristicile care face PDO superior față de mysqli (faptul că este agnostic în ceea ce privește baza de date) nu înseamnă prea mult pentru WordPress, deoarece WordPress va folosi întotdeauna server mysql. Dar legarea parametrilor cu tipuri de date este ceva ce PDO suportă dar mysqli nu, și este un lucru bun.
Instinctul îmi spune că WordPress folosește mysqli, dar nu am putut să-l văd încă în baza de cod.
A doua mea întrebare este dacă WordPress folosește mysqli, este din cauza preocupărilor legate de viteză sau este pentru că în zilele de început (când WP era în dezvoltare), PDO nu exista încă?

O actualizare pentru WordPress 3.9+ - odată cu deprecierea funcțiilor mysql_*
în PHP 5.5, WordPress a început să utilizeze mysqli
dacă acesta este disponibil pe server. Viitoarele dvs. plugin-uri și cod ar trebui să țină cont de acest lucru și să înceteze utilizarea funcțiilor mysql_*
. În prezent, în versiunea 3.9, WordPress verifică disponibilitatea mysqli
și îl utilizează dacă este disponibil. Dacă nu, folosește mysql_*
, dar această verificare va fi eliminată cât mai curând posibil. Pe termen lung, se pare că vor folosi PDO
, dar acesta este un proiect mai amplu.
Iată un FAQ și un anunț despre această schimbare:
http://make.wordpress.org/core/2014/04/07/mysql-in-wordpress-3-9/

WordPress folosește mysql_*
funcțiile.
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/wp-db.php
Le-a folosit încă de când îmi amintesc, ceea ce probabil răspunde la ultima ta întrebare. Este ceea ce aș considera cod moștenit. Bănuiesc că va fi actualizat în curând (acele funcții au fost învechite doar începând cu PHP 5.5, cred). Nu știu în ce direcție va merge dezvoltarea.
Link către un tichet în Trac, cu amabilitatea lui Wyck (dintr-un comentariu de mai jos):

Am verificat codul din wp-db.php. Pe linia 1133, este funcția db_connect și conform acesteia, nu este nici măcar mysqli. Sunt confuz. Linia 1143 are clar acest lucru: $this->dbh = @mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags ); și conform manualului PHP, (http://php.net/manual/en/function.mysql-connect.php), acesta este un cod mysql, nu mysqli. WP folosește într-adevăr mysql?

WordPress folosește funcții învechite, deoarece mysql_connect
a fost oficial depreciat, wp se va muta sperăm la PDO în curând (curând înseamnă 1-2 ani). Ref: http://core.trac.wordpress.org/ticket/21663

@AverageJoe ... da, cum am spus, WordPress folosește funcții mysql. Ca și Wyck, sper la PDO, dar nu știu în ce direcție se va îndrepta.

Mulțumesc pentru link-ul de pe trac, Wyck. s_ha_dum, te rog să incluzi acest link ( http://core.trac.wordpress.org/ticket/21663 ) în răspunsul tău și să corectezi gramatica unde ai scris "If has used those ever since I can remember," când ai ocazia. Mulțumesc.

Un mic bump. Acest lucru a fost scris acum un an lumină.. Dar astăzi cred că avem mysqli_* în WordPress de câteva versiuni, nu-i așa?

Okay, am făcut o verificare a codului sursă în WordPress acum. Este vechiul mysql_*. Cineva știe care este viitorul clasei de bază de date în WordPress? Nu ar trebui să fie prea greu să includem o nouă opțiune mysqli_* și să păstrăm vechiul mysql* în fundal pentru orice eventualitate - poate ca un catch->if error cu noul mysqli->rulează vechea clasă db = plugin-urile etc. continuă să funcționeze
