WordPress mysqli และ PDO


11

รหัสฐาน WordPress ใช้ mysqli หรือ PDO หรือไม่?

ฉันรู้ว่า PDO ดีกว่า mysqli แต่ mysqli ก็ไม่ได้แย่ บวกกับหนึ่งในคุณสมบัติของสิ่งที่ทำให้ PDO นั้นเหนือกว่า mysqli (นั่นคือฐานข้อมูลไม่เชื่อเรื่องพระเจ้า) ไม่ได้มีความหมายอะไรกับ WordPress มากนักเนื่องจาก WordPress จะใช้เซิร์ฟเวอร์ mysql เสมอ แต่การเชื่อมต่อกับชนิดข้อมูลเป็นสิ่งที่สนับสนุน PDO แต่ mysqli ไม่ได้และเป็นสิ่งที่ดี

ความกล้าของฉันบอกฉันว่า WordPress ใช้ mysqli แต่ฉันไม่เห็นมันในฐานรหัสเลย

คำถามที่สองของฉันคือถ้า WordPress ใช้ mysqli มันเป็นเพราะความกังวลเรื่องความเร็วหรือเป็นเพราะย้อนกลับไปก่อนหน้านี้ (เมื่อ WP กำลังพัฒนา) PDO ยังไม่ได้อยู่ที่นั่น?

คำตอบ:


7

WordPress ใช้ฟังก์ชั่นmysql_*

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

มันใช้สิ่งเหล่านั้นนับตั้งแต่ฉันจำได้ซึ่งอาจตอบคำถามสุดท้ายของคุณ มันเป็นสิ่งที่ฉันจะพิจารณารหัสดั้งเดิม ฉันสงสัยว่าจะมีการอัปเดตในไม่ช้า ฉันไม่รู้ว่าจะพัฒนาเส้นทางไหน

เชื่อมโยงไปยังตั๋วใน Trac, มารยาทของ Wyck (จากความคิดเห็นด้านล่าง):

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


ฉันตรวจสอบรหัสที่ wp-db.php ในบรรทัดที่ 1133 มีฟังก์ชั่น db_connect และตามนั้นมันไม่ใช่แม้แต่ mysqli ฉันสับสน บรรทัด 1143 มีสิ่งนี้ชัดเจน $ this-> dbh = @mysql_connect ($ this-> dbhost, $ this-> dbuser, $ this-> dbpassword, $ new_link, $ client_flags); และตามคู่มือ PHP, ( php.net/manual/en/function.mysql-connect.php ), นี่คือรหัส MySQL, ไม่ใช่ mysqli WP ใช้ mysql จริงๆหรือ
ค่าเฉลี่ย Joe

6
Wordpress ใช้ฟังก์ชั่นที่ล้าสมัยเนื่องจากmysql_connectมีการคิดค่าเสื่อมราคาอย่างเป็นทางการ wp จะย้ายไปหวังว่าจะ PDO เร็ว ๆ นี้ (เร็ว ๆ นี้คือ 1-2 ปี) Ref: core.trac.wordpress.org/ticket/21663
Wyck

@ ค่าเฉลี่ยโจ ... ใช่อย่างที่ฉันพูด WordPress ใช้ฟังก์ชั่น mysql เช่น Wyck ฉันหวังว่าจะเป็น PDO แต่ฉันไม่รู้ว่ามันจะไปทางไหน
s_ha_dum

ขอบคุณสำหรับลิงค์ trac Wyck s_ha_dum โปรดรวมลิงค์นี้ ( core.trac.wordpress.org/ticket/21663 ) ไว้ในคำตอบของคุณและแก้ไขไวยากรณ์ที่คุณไป "ถ้าคุณใช้สิ่งเหล่านั้นนับตั้งแต่ฉันจำได้" เมื่อคุณมีโอกาส ขอบคุณ
เฉลี่ย Joe

ชนเล็กน้อย เขียนเมื่อหนึ่งปีก่อน .. แต่วันนี้ฉันเชื่อว่าเรามี mysqli_ * ในเวิร์ดเพรสตั้งแต่บางเวอร์ชั่นใช่ไหม
K. Kilian Lindberg

11

การอัปเดตสำหรับ Wordpress 3.9+ - ด้วย PHP 5.5 การเลิกใช้งานmysql_*ฟังก์ชั่น Wordpress เริ่มใช้mysqliถ้ามันมีอยู่บนเซิร์ฟเวอร์ mysql_*ปลั๊กอินในอนาคตและรหัสของคุณควรใช้เวลานี้ในการพิจารณาและหยุดใช้ ตอนนี้ใน 3.9 wordpress ตรวจสอบความพร้อมของmysqliและใช้งานถ้ามี ถ้าไม่ใช่จะใช้mysql_*แต่การตรวจสอบนั้นจะถูกลบออกโดยเร็วที่สุด ดูเหมือนว่าพวกเขาจะใช้ถนนPDOแต่มันเป็นโครงการขนาดใหญ่

นี่คือคำถามที่พบบ่อยและประกาศเกี่ยวกับมัน:

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.