Lớp này được sử dụng để tương tác với cơ sở dữ liệu mà không cần sử dụng các câu lệnh SQL thô. Theo mặc định, WordPress sử dụng lớp này để khởi tạo đối tượng $wpdb toàn cầu, cung cấp quyền truy cập vào cơ sở dữ liệu WordPress
Có thể thay thế lớp này bằng lớp của riêng bạn bằng cách đặt biến toàn cục $wpdb trong wp-content/db. php vào lớp học của bạn. Lớp wpdb sẽ vẫn được bao gồm, vì vậy bạn có thể mở rộng nó hoặc đơn giản là sử dụng lớp của riêng bạn
WordPress định nghĩa một lớp gọi là $wpdb, lớp này chứa một tập hợp các hàm được sử dụng để tương tác với cơ sở dữ liệu. Mục đích chính của nó là cung cấp giao diện cho cơ sở dữ liệu WordPress, nhưng nó có thể được sử dụng để giao tiếp với bất kỳ cơ sở dữ liệu thích hợp nào khác. Mã nguồn của lớp dựa trên lớp ezSQL một cách lỏng lẻo
WordPress được tạo bằng PHP cho phép chạy các hàm
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
0 và $myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
1 nhưng không nên sử dụng chúng trực tiếp trong WordPress vì những lý do sau- Lớp wpdb cung cấp các cải tiến bảo mật để bảo vệ các truy vấn của bạn chống lại các cuộc tấn công hoặc tấn công SQL
- Ví dụ, trong một lần di chuyển hoặc thay đổi công cụ cơ sở dữ liệu từ MySQL sang PostgreSQL, chúng có thể không hoạt động và phá vỡ mọi thứ
WordPress cung cấp một biến đối tượng toàn cầu
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
2, là một thể hiện của lớp wpdb được định nghĩa trong /wp-includes/wp-db. phpTheo mặc định, $wpdb là ví dụ để giao tiếp với cơ sở dữ liệu WordPress. Để truy cập mã PHP WordPress của bạn bằng $wpdb, bạn phải khai báo $wpdb là một biến toàn cục bằng cách sử dụng từ toàn cầu hoặc sử dụng
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
3 superglobal như sau// Declarating $wpdb as global
global $wpdb;
$results = $wpdb->get_results[ 'SELECT * FROM wp_options WHERE option_id = 1', OBJECT ];
// Utilizando el superglobal $GLOBALS
$results = $GLOBALS['wpdb']->get_results[ 'SELECT * FROM wp_options WHERE option_id = 1', OBJECT ];
Điều quan trọng là đừng quên thêm dòng toàn cầu $wpdb trước khi bắt đầu thực hiện các chức năng của chúng tôi
Đối tượng $wpdb không giới hạn ở các bảng mặc định được tạo bởi WordPress; . Ví dụ: để chọn thông tin từ bảng tùy chỉnh có tên
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
4, bạn có thể thực hiện như sau$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
Với lớp wpdb, chúng ta có thể tương tác với cơ sở dữ liệu để tạo ra các loại truy vấn khác nhau, nhưng hôm nay tôi sẽ chỉ giải thích 4 loại cơ bản nhất tương ứng với CRUD [TẠO, ĐỌC, CẬP NHẬT VÀ XÓA]
Nhưng trước đó, chúng ta cần tạo một bảng trong cơ sở dữ liệu của mình, điều này đôi khi được sử dụng rộng rãi khi chúng ta cài đặt một plugin cần tạo bảng một cách độc lập và theo cách này, nó được thực hiện. Tất cả các bài kiểm tra này sẽ được đặt trong tệp
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
5________số 8Với điều này, chúng tôi đã thêm một bảng mới vào toàn bộ cơ sở dữ liệu của mình với tên
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
4 và bây giờ chúng tôi sẽ tiến hành thực hiện các thao tác trên bảng của mìnhChèn
Như chúng tôi đã quan sát trước đây, một bảng mới có ba trường [id, tên, email] đã được tạo, id sẽ không được chạm vào vì nó chỉ dùng để tự động tăng mỗi khi thêm dữ liệu, sau đó chúng tôi sẽ chèn tên và
Cách chèn hàng mới được thực hiện như sau
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
0cái bàn. Nó thuộc loại [chuỗi] và tương ứng với tên của bảng nơi hàng hoặc trường sẽ được chèn vào
dữ liệu. Nó là thông tin được thêm vào và phải đi qua một [mảng]
định dạng. Đây là một loại tùy chọn [mảng. chuỗi] là một mảng các định dạng sẽ được gán cho từng giá trị trong dữ liệu
Trong trường hợp của chúng tôi, nó sẽ như sau
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
1Lưu ý rằng tôi đang sử dụng hook hành động
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
7 được thực thi sau khi cập nhật WordPress, vì vậy để chúng thực thi từng chức năng, chỉ cần cập nhật WPCập nhật
Bây giờ chúng tôi sẽ cập nhật hàng được tạo bằng cấu trúc sau
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
3Trong trường hợp của chúng tôi, nó sẽ như sau
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
4Và theo cách này, chúng tôi đã cập nhật trường
Đọc
Bây giờ chúng ta sẽ đọc thông tin trong bảng
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
4 và được hiển thị trong WP của chúng ta$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
6Những gì chúng tôi đã làm là hiển thị truy vấn từ tiêu đề của WP
Xóa bỏ
Và cuối cùng, chúng ta sẽ xóa bản ghi của mình thông qua cấu trúc sau do lớp
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
9 cung cấp, cấu trúc này rất giống với cấu trúc chèn$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
8Trong trường hợp của chúng tôi, nó sẽ như sau
$myrows = $wpdb->get_results[ "SELECT id, name FROM wp_form" ];
9Xóa hoàn toàn hàng của chúng tôi
Các chức năng được sử dụng nhiều nhất
Bốn hàm được thấy ở trên là một phần của những hàm cơ bản được sử dụng bất cứ khi nào chúng ta muốn tương tác với bất kỳ loại cơ sở dữ liệu nào, vì lý do này, tôi sẽ để lại cho bạn danh sách các hàm khác mà bạn cũng có thể sử dụng với lớp wpdb bên dưới
- get_var []. Trả về một biến [một kết quả, một giá trị,. ]
- get_row[]. Trả về một hàng từ một bảng trong cơ sở dữ liệu
- get_col []. Trả về một cột từ một bảng trong cơ sở dữ liệu
- get_results[]. Trả về danh sách kết quả [phổ biến nhất]
- chèn []. Để thực hiện các tương tác $wpdb->insert[$table,$data,$format]
- thay thế []. Để cập nhật bảng và thay thế
- cập nhật []. Để cập nhật một hàng
- xóa bỏ []. Để xóa một hàng
- truy vấn []. Đối với bất kỳ truy vấn
- chuẩn bị []. Được sử dụng để bảo vệ chống lại các cuộc tấn công sql injection
Trên đây là cách chính xác để làm việc với cơ sở dữ liệu WordPress, cho dù chúng ta đang tạo mẫu, plugin hay bất kỳ thứ gì khác mà bạn nghĩ đến, đừng quên bình luận nếu bạn thích bài viết này và chia sẻ nó với cả cộng đồng 🤓