WordPress mysqli dan PDO


11

Apakah basis kode WordPress menggunakan mysqli atau PDO?

Saya tahu PDO lebih unggul dari mysqli tetapi mysqli juga tidak buruk. Ditambah dari salah satu fitur yang membuat PDO lebih unggul dari mysqli (yang menjadi basis data agnostik) tidak terlalu berarti bagi WordPress karena WordPress akan selalu menggunakan server mysql. Tetapi mengikat params dengan tipe data adalah sesuatu yang didukung PDO tetapi mysqli tidak dan itu adalah hal yang baik.

Nyali saya memberi tahu saya bahwa WordPress memang menggunakan mysqli tapi saya belum bisa melihatnya di basis kode.

Pertanyaan kedua saya adalah apakah WordPress menggunakan mysqli, apakah karena masalah kecepatan atau karena pada hari-hari sebelumnya (ketika WP sedang dikembangkan), PDO belum ada di sana?

Jawaban:


6

WordPress menggunakan mysql_*fungsi .

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

Ini telah menggunakan yang sejak saya ingat, yang mungkin menjawab pertanyaan terakhir Anda. Itu yang saya anggap sebagai kode warisan. Saya menduga itu akan segera diperbarui (fungsi-fungsi itu hanya ditinggalkan pada PHP 5.5, saya percaya). Saya tidak tahu pengembangan rute mana yang akan ditempuh.

Tautan ke tiket di Trac, milik Wyck (dari komentar di bawah):

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


Saya memeriksa kode di wp-db.php. Secara online, 1133, ia memiliki fungsi db_connect dan menurutnya, bahkan bukan mysqli. Saya bingung. baris 1143 jelas memiliki ini; $ this-> dbh = @mysql_connect ($ this-> dbhost, $ this-> dbuser, $ this-> dbpassword, $ new_link, $ client_flags); dan menurut manual PHP, ( php.net/manual/en/function.mysql-connect.php ), ini adalah kode mysql, Bukan mysqli. Apakah WP benar-benar menggunakan mysql?
Rata

6
Wordpress menggunakan fungsi yang sudah ketinggalan zaman, karena mysql_connecttelah secara resmi didepresiasi, wp diharapkan akan segera pindah ke PDO (segera 1-2 tahun). Ref: core.trac.wordpress.org/ticket/21663
Wyck

@AtauJoe ... ya, seperti yang saya katakan, WordPress menggunakan fungsi mysql. Seperti Wyck, saya berharap untuk PDO, tetapi saya tidak tahu ke mana akan pergi.
s_ha_dum

Terima kasih atas trac link Wyck. s_ha_dum harap sertakan tautan ini ( core.trac.wordpress.org/ticket/21663 ) dalam jawaban Anda dan perbaiki tata bahasa tempat Anda pergi "Jika telah menggunakan yang sejak saya ingat," ketika Anda mendapat kesempatan. Terima kasih
Rata

Sedikit benjolan. Ini ditulis satu tahun cahaya lalu .. Tapi hari ini saya percaya kita memiliki mysqli_ di wordpress karena beberapa versi, kan?
K. Kilian Lindberg

10

Pembaruan untuk Wordpress 3.9+ - dengan PHP 5.5 mencela mysql_*fungsi yang sudah digunakan Wordpress mysqlijika tersedia di server. Plugin dan kode Anda di masa depan harus mempertimbangkan hal ini dan berhenti menggunakan mysql_*. Saat ini, di 3.9, wordpress memeriksa ketersediaan mysqlidan menggunakannya jika tersedia. Jika tidak menggunakan mysql_*tetapi pemeriksaan itu akan dihapus sesegera mungkin. Kelihatannya mereka akan menggunakan PDOtetapi itu adalah proyek yang lebih besar.

Berikut ini adalah FAQ dan pengumuman tentang itu:

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.