Hướng dẫn where is wpdb defined in wordpress? - wpdb được định nghĩa ở đâu trong wordpress?

Hướng dẫn • WordPress • 01 tháng 11 năm 2012 • 5 phút đọcNovember 01, 2012 • 5 minutes READ

WordPress là một nền tảng có thể tùy chỉnh cao, người ta có thể tạo ra một số lượng lớn các plugin trên đầu nó. Các plugin này có thể bao gồm từ chức năng đơn giản đến một plugin hoàn toàn phức tạp, thực hiện một số lượng lớn các tác vụ. WordPress cung cấp một số lượng lớn các chức năng để thực hiện các tác vụ khác nhau đọc hoặc ghi dữ liệu trong cơ sở dữ liệu WordPress như đọc nội dung của một bài đăng hoặc tạo các danh mục mới trong WordPress của bạn.WordPress database like reading the contents of a post or creating new categories in your WordPress.

Các chức năng này chủ yếu đủ nhu cầu của hầu hết các plugin được xây dựng trên đầu WordPress. Nhưng trong một số trường hợp, chúng tôi cần truy cập trực tiếp vào cơ sở dữ liệu để thực hiện một số truy vấn hoặc hoạt động trực tiếp trên cơ sở dữ liệu. Trong những trường hợp như vậy, WordPress cho phép chúng tôi tương tác với cơ sở dữ liệu. Trong bài viết này, chúng tôi sẽ xem làm thế nào chúng tôi có thể tương tác trực tiếp với cơ sở dữ liệu.

Hướng dẫn where is wpdb defined in wordpress? - wpdb được định nghĩa ở đâu trong wordpress?

Hiểu WPDB và $ WPDB

Để thực hiện các hoạt động cơ sở dữ liệu WordPress cung cấp một lớp WPDB có trong tệp-WP-Includes \ WP-DB.php. Lớp này trừu tượng hóa các chức năng cơ sở dữ liệu cho WordPress và hầu hết các hàm WordPress trực tiếp hoặc gián tiếp sử dụng lớp này. Lớp này dựa trên lớp EZSQL. Bạn có thể tạo một đối tượng của lớp này để thực hiện các hoạt động cơ sở dữ liệu nhưng WordPress tạo ra một đối tượng của lớp này trong quá trình tải của WordPress.performing database operations WordPress provides a class wpdb which is present in the file – wp-includes\wp-db.php. This class abstracts the database functions for WordPress and most WordPress functions directly or indirectly use this class. This class is based on the ezSQL class. You can create an object of this class to perform database operations but WordPress creates an object of this class during the load of WordPress.

Đối tượng này là $ wpdb và là một đối tượng toàn cầu. Vì vậy, trong trường hợp chúng tôi muốn thực hiện bất kỳ hoạt động cơ sở dữ liệu nào, chúng tôi nên sử dụng đối tượng WPDB $ toàn cầu này và các chức năng gọi trên chúng. Vì vậy, trong trường hợp bạn muốn sử dụng $ wpdb trong một số chức năng, bạn nên khai báo nó như một biến toàn cầu trước khi sử dụng nó như sau.

function someFunction() {

global $wpdb;

//..................

//Some Operation on database using $wpdb

//..................

}

Tìm nạp một số giá trị từ cơ sở dữ liệu

Có rất nhiều chức năng trên $ WPDB để tìm nạp các giá trị từ cơ sở dữ liệu. Một số chức năng này được chuyên về một giá trị, một hàng hoặc một cột từ bảng cơ sở dữ liệu.

Trình tạo mẫu email trực tuyến

Với bưu thiếp, bạn có thể tạo và chỉnh sửa các mẫu email trực tuyến mà không cần bất kỳ kỹ năng mã hóa nào! Bao gồm hơn 100 thành phần để giúp bạn tạo các mẫu email tùy chỉnh nhanh hơn bao giờ hết.

Hãy thử các sản phẩm miễn phí khác

get_var

Hàm get_var có trong một truy vấn và trả về một giá trị có thể được gán trực tiếp cho một biến.

Vì vậy, trong trường hợp chúng tôi muốn tìm ra số lượng hàng trong bảng bài đăng, chúng tôi có thể sử dụng mã sau sử dụng get_var

$numberofpost = $wpdb->;get_var( "SELECT COUNT(*) FROM $wpdb->;posts;");

echo "The number of rows in posts table are:" .$numberofpost;

get_var chỉ trả về một giá trị nhưng nó lưu trữ toàn bộ hàng trong biến $ last_result của lớp.

get_row

Phương pháp này rất hữu ích để có được một hàng hoàn chỉnh từ một truy vấn. Phương pháp này có trong một truy vấn và cũng cần một tham số để chỉ ra định dạng đầu ra nên có.

Nếu chúng ta muốn tìm nạp hàng từ bảng bài viết với id = 1, chúng ta có thể làm điều đó với get_row như sau

$post = $wpdb->;get_row("SELECT * FROM $wpdb->;posts WHERE ID = 1");

print_r($post);

Tham số đầu tiên của get_row là một truy vấn và tham số thứ hai có thể là một trong các giá trị sau

  • Đối tượng (đây là giá trị mặc định) - trong trường hợp này, đối tượng là một đối tượng có cột của bảng là thành viên của đối tượng.
  • Array_A - Trong trường hợp này, kết quả được trả về cho một mảng kết hợp.
  • Array_N - Trong trường hợp này, kết quả là của một mảng được lập chỉ mục bằng số.

get_col

Phương pháp này rất hữu ích để có được một cột từ một truy vấn. Đầu ra của chức năng này là một mảng. Vì vậy, trong trường hợp chúng tôi muốn nhận được tất cả các tiêu đề của bài đăng, chúng tôi có thể sử dụng mã sau

$posttitles = $wpdb->;get_col( "SELECT post_title FROM $wpdb->;posts;" );

echo "The titles are";

foreach ( $posttitles as $title )

{

echo $title;

}

get_results

Phương pháp này được sử dụng để có được đầu ra của một truy vấn chung có đầu ra dưới dạng nhiều hàng và nhiều cột. Đầu ra mặc định cho hàm này là mảng của các đối tượng trong đó mỗi đối tượng đại diện cho một hàng của kết quả. Vì vậy, trong trường hợp chúng tôi muốn viết một truy vấn để tìm nạp tất cả các bài đăng có khóa meta cụ thể được xác định trên chúng, chúng tôi có thể thực hiện nó bằng cách sử dụng get_results như sau

$result =$wpdb->;get_results("SELECT * FROM $wpdb->;posts , $wpdb->;postmeta where $wpdb->;posts.ID = $wpdb->;postmeta.post_id

AND post_status='publish'  AND meta_key='meta_key_name'");

print_r($result);

Sử dụng phương pháp chuẩn bị

Đôi khi chúng tôi có thể lấy một số dữ liệu từ người dùng trong trường hợp biểu mẫu hoặc một cái gì đó khác và biến nó thành một phần của truy vấn. Điều này có thể gây ra vấn đề trong trường hợp có SQL tiêm trên truy vấn. Trong SQL Injection, kẻ tấn công tiêm một truy vấn trong một giá trị biểu mẫu mà bạn sẽ sử dụng để tạo truy vấn cơ sở dữ liệu. Các truy vấn này có thể nguy hiểm như việc bán cơ sở dữ liệu hoàn chỉnh để xóa cơ sở dữ liệu. Để biết thêm chi tiết về SQL Injection, bạn có thể truy cập https://en.wikipedia.org/wiki/sql_injection.

Phương pháp chuẩn bị WPDB nên được sử dụng để bảo vệ ONER chống tiêm SQL. Phương thức chuẩn bị rất giống với phương thức printF có trong một truy vấn và sau đó các giá trị tham số được thay thế.

Vì vậy, trong trường hợp chúng tôi muốn có được các chi tiết về bài đăng của một ID cụ thể trong đó ID có từ trường biểu mẫu, chúng tôi nên sử dụng chức năng chuẩn bị để vệ sinh truy vấn như được hiển thị bên dưới.

function get_the_post_details($id)

{

global $wpdb;

$query = "SELECT * FROM $wpdb->;posts WHERE ID = %d";

$post = $wpdb->;get_row($wpdb->;prepare($query,$id));

print_r($post);

}

Chèn và cập nhật dữ liệu bằng cách sử dụng $ wpdb

Cho đến bây giờ chúng tôi đã thấy làm thế nào bạn có thể truy xuất dữ liệu từ cơ sở dữ liệu WordPress bằng lớp WPDB. Bây giờ chúng ta sẽ xem các chức năng do WPDB cung cấp là gì để chèn và cập nhật dữ liệu bởi lớp $ WPDB.

Chèn chức năng

Hàm chèn của WPDB cho phép bạn chèn một hàng vào bảng cơ sở dữ liệu. Hàm chèn lấy các đối số làm tên của bảng, một mảng các giá trị và một mảng các định dạng tùy chọn.

Để sử dụng chức năng Chèn để thêm giá trị meta cho một bài đăng cụ thể có thể được thực hiện với mã sau

$wpdb->;insert(

$wpdb->;postmeta,

array(

'post_id' =>; 1,

'meta_key' =>; 'price',

'meta_value' =>; '500'

),

array(

'%d',

'%s',

'%s'

)

);

Mã trên chèn một hàng trong bảng Postmeta với các giá trị cho post_id là 1, meta_key là giá và meta_value là 500.

Chức năng cập nhật

WPDB cũng cung cấp một phương thức cập nhật bằng cách sử dụng mà bạn có thể cập nhật một số giá trị trong bảng cơ sở dữ liệu. Hàm cập nhật lấy các đối số làm tên của bảng, mảng các giá trị để thay đổi, mảng các giá trị để sử dụng trong mệnh đề WHERE, định dạng tùy chọn cho các giá trị để thay đổi, định dạng tùy chọn cho mệnh đề WHERE.

Trong trường hợp chúng tôi muốn thay đổi giá trị meta mà chúng tôi đã chèn ở trên trong bảng Postmeta có thể được thực hiện như sau.

$wpdb->;update(

$wpdb->;postmeta,

array(

'meta_value' =>; '750'

),

array(

'post_id' =>; 1,

'meta_key' =>; 'price',

)

);

Trong đó, chúng tôi đang tạo giá trị meta là 750 cho post_id là 1 và meta_key làm giá.

Một số chức năng hữu ích khác hoặc WPDB

Lớp WPDB cũng cung cấp một số chức năng hữu ích khác như sau

  • Flush - Hàm này được sử dụng để xóa kết quả của truy vấn trước đó.
  • show_errors - Hàm này được sử dụng để cho phép hiển thị các lỗi cơ sở dữ liệu.
  • Hide_errors - Hàm này được sử dụng để vô hiệu hóa hiển thị các lỗi cơ sở dữ liệu.
  • Bảng - Hàm này trả về tất cả các bảng của WordPress.
  • Thay thế - Hàm này được sử dụng để thay thế một hàng trong bảng cơ sở dữ liệu.
  • Xóa - Hàm này được sử dụng để xóa các hàng khỏi bảng cơ sở dữ liệu.

Sự kết luận

WordPress với nhiều chức năng và chức năng khác nhau của nó có rất ít và các tác vụ chuyên dụng còn lại khi người ta phải thực hiện truy vấn hoặc hoạt động trên cơ sở dữ liệu. Trong trường hợp plugin của bạn phải tạo một bảng mới trong trường hợp đó, bạn có thể cần viết các hàm trình bao thực hiện các hoạt động trên bảng đó bằng đối tượng $ WPDB. Hoạt động cơ sở dữ liệu có thể tốn kém cũng như nguy hiểm nếu không được thực hiện cẩn thận. Vì vậy, các hoạt động cơ sở dữ liệu trực tiếp nên được sử dụng một cách thận trọng. Về các bảng được cài đặt bởi WordPress, rất khuyến khích bạn sử dụng một hàm được cung cấp bởi chính WordPress. Vì vậy, trong trường hợp bạn thấy mình viết một truy vấn cơ sở dữ liệu, bạn nên thực hiện nghiên cứu trên internet và một số diễn đàn WordPress để biết liệu có chức năng WordPress có sẵn và chỉ thực hiện truy vấn trực tiếp khi không có tùy chọn tốt hơn không.

Giống như những gì bạn đang đọc? Đăng ký những câu chuyện hàng đầu của chúng tôi.

Tiền tố WPDB trong WordPress là gì?

WordPress có một lớp WPDB cơ sở dữ liệu mà chúng tôi sử dụng để lấy dữ liệu từ cơ sở dữ liệu.Chúng ta có thể sử dụng đối tượng $ wpdb của lớp này chỉ bằng cách sử dụng từ khóa toàn cầu: toàn cầu $ wpdb;Lớp WPDB này lưu trữ nhiều thông tin hữu ích về cơ sở dữ liệu mà chúng ta có thể sử dụng trong mã của mình như tiền tố bảng.table prefix.

WP DB là gì?

WP DB thực hiện các hoạt động cơ sở dữ liệu cơ bản sử dụng thông tin đăng nhập được lưu trữ trong WP-Config.Performs basic database operations using credentials stored in wp-config.

WordPress có cơ sở dữ liệu không?

Cơ sở dữ liệu WordPress là bộ lưu trữ dữ liệu trang web của bạn bằng hệ thống quản lý cơ sở dữ liệu nguồn mở MySQL.Tất cả các cơ sở dữ liệu WordPress đều có cấu trúc MySQL mặc định, cho phép trang web của bạn hoạt động tốt, nhưng bạn có thể thêm nhiều bảng để tùy chỉnh.. All WordPress databases have a set default MySQL structure, which allows your website to work well, but you can add more tables to customize.

WPDB get_results trở lại là gì?

Lấy toàn bộ kết quả SQL được đặt từ cơ sở dữ liệu (nghĩa là, nhiều hàng). (i.e., many rows).