WordPress mysqli và PDO


11

Cơ sở mã WordPress có sử dụng mysqli hoặc PDO không?

Tôi biết PDO vượt trội hơn mysqli nhưng mysqli cũng không tệ. Cộng với một trong những tính năng khiến PDO vượt trội hơn mysqli (đó là bất khả tri về cơ sở dữ liệu) không có ý nghĩa nhiều với WordPress vì WordPress sẽ luôn sử dụng máy chủ mysql. Nhưng các thông số ràng buộc với các loại dữ liệu là thứ PDO hỗ trợ nhưng mysqli thì không và đó là một điều tốt.

Quan điểm của tôi nói với tôi rằng WordPress không sử dụng mysqli nhưng tôi chưa thể thấy nó trong cơ sở mã.

Câu hỏi thứ hai của tôi là nếu WordPress đang sử dụng mysqli, có phải vì lo ngại về tốc độ hay là vì trở lại những ngày trước (khi WP đang được phát triển), PDO vẫn chưa xuất hiện?

Câu trả lời:


6

WordPress sử dụng các mysql_*chức năng .

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

Nó đã sử dụng những từ bao giờ tôi có thể nhớ, có thể trả lời câu hỏi cuối cùng của bạn. Đó là những gì tôi sẽ xem xét mã di sản. Tôi nghi ngờ rằng nó sẽ được cập nhật vào lúc nào đó (những chức năng đó chỉ bị phản đối kể từ phiên bản PHP 5.5, tôi tin vậy). Tôi không biết tuyến đường nào sẽ phát triển.

Liên kết đến một vé ở Trac, lịch sự của Wyck (từ một bình luận bên dưới):

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


Tôi đã kiểm tra mã tại wp-db.php. Trên mạng, 1133, nó có chức năng db_connect và theo nó, nó thậm chí không phải là mysqli. Tôi bối rối. dòng 1143 rõ ràng có điều này; $ this-> dbh = @mysql_connect ($ this-> dbhost, $ this-> dbuser, $ this-> dbpassword, $ new_link, $ client_flags); và theo hướng dẫn của PHP, ( php.net/manual/en/feft.mysql-connect.php ), đây là mã mysql, không phải mysqli. WP có thực sự sử dụng mysql không?
Trung bình Joe

6
Wordpress sử dụng các chức năng lỗi thời, vì mysql_connectđã chính thức bị khấu hao, wp sẽ sớm chuyển sang PDO (sớm là 1-2 năm). Tham chiếu: core.trac.wordpress.org/ticket/21663
Wyck

@AlusiveJoe ... vâng, như tôi đã nói, WordPress sử dụng các chức năng mysql. Giống như Wyck, tôi hy vọng vào PDO, nhưng tôi không biết nó sẽ đi theo hướng nào.
s_ha_dum

Cảm ơn bạn đã liên kết trac Wyck. s_ha_dum vui lòng bao gồm liên kết này ( core.trac.wordpress.org/ticket/21663 ) trong câu trả lời của bạn và sửa lỗi ngữ pháp nơi bạn đi "Nếu bạn đã sử dụng những từ đó kể từ khi tôi có thể nhớ", khi bạn có cơ hội. Cảm ơn bạn
Trung bình Joe

Một chút va chạm. Điều này đã được viết một năm trước đây .. Nhưng hôm nay tôi tin rằng chúng ta có mysqli_ * trong wordpress kể từ một số phiên bản, phải không?
K. Kilian Lindberg

10

Một bản cập nhật cho Wordpress 3.9+ - với PHP 5.5 không dùng các mysql_*chức năng mà Wordpress đã bắt đầu sử dụng mysqlinếu nó có sẵn trên máy chủ. Các plugin và mã trong tương lai của bạn nên cân nhắc điều này và ngừng sử dụng mysql_*. Ngay bây giờ, trong 3.9, wordpress kiểm tra tính khả dụng mysqlivà sử dụng nó nếu có. Nếu không nó sử dụng mysql_*nhưng kiểm tra đó sẽ được gỡ bỏ sớm nhất có thể. Xuống đường có vẻ như họ sẽ sử dụng PDOnhưng đó là một dự án lớn hơn.

Đây là một Câu hỏi thường gặp và thông báo về nó:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.