Hướng dẫn sử dụng wpdb Class – Using the wpdb Class

Trang chủ Tin tức LẬP TRÌNH PHP Hướng dẫn sử dụng wpdb Class – Using the wpdb Class

Khi bạn cần làm việc với database để kiểm tra, thêm, xóa, cập nhật dữ liệu trong WordPress, wpdb Class chính là giải pháp cho bạn. Khi làm việc với dữ liệu nhiều thì chắn chắn sẽ dùng đến wpdb Class, sau đây là những gợi ý cho bạn về cách sử dụng wpdb Class.

Gợi ý một số hàm get data trong WordPress:

SELECT a Variable

get_var trả về 1 biến duy nhất từ database, mặc dù chỉ một biến được trả về nhưng toàn bộ kết quả của truy vấn dữ liệu được lưu trữ để sử dụng sau này. Trả về NULL nếu dữ liệu rỗng.

<?php get_var( 'query', column_offset, row_offset ); ?>

query: là câu lệnh sql của bạn
colum_offset: là cột mà bạn mong muốn (có thể trống, mặc định là 0)
row_offset: hàng mà bạn mong muốn (có thể trống, mặc định là 0)

Ví dụ thêm:

<?php
	$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );
	echo "<p>User count is {$user_count}</p>";
?>

SELECT a Column

get_col: trả về 1 cột dữ liệu mà bạn cần, hàm này sẽ trả về một mảng – array, nếu có nhiều hơn một cột thì chỉ có cột được chỉ định trả về, còn lại được lưu trong cache để sử dụng sau. Trường hợp không thấy kết quả sẽ trả về mảng trống.

 <?php $wpdb->get_col( 'query', column_offset ); ?> 

query: là câu lệnh sql
column_offset: thứ tự của cột dữ liệu bạn muốn (có thể trống, mặc định 0)

SELECT a Row

get_row sẽ trả về cho bạn 1 hàng đầu tiên trong bảng dữ liệu mà bạn select, nếu có nhiều hơn một hàng được trả về, thì bạn sẽ nhận được hàng ưu tiên. Trả về NULL nếu dữ liệu không tìm thấy.

<?php $wpdb->get_row('query', output_type, row_offset); ?> 

query: là câu lên sql của bạn
output_type: có 3 dạng, mặc định là OBJECT, không bắt buộc
– OBJECT – kết quả đầu ra như một đối tượng
– ARRAY_A – kết quả đầu ra là một mảng
– ARRAY_N – kết quả đầu ra là một mảng được lập chỉ mục bằng số
row_offset: là dòng bạn ưu tiên (mặc định là 0)

Ví dụ thêm:

<?php
$myuser = $wpdb->get_row( "SELECT * FROM $wpdb->user WHERE ID = 1" );
print_r($myuser);
?>

Lưu ý chung:

Nếu bạn gọi hàm $wpdb từ trong file functions.php của theme, thì bạn cần thêm vào biến sau, nếu không php sẽ trả về lỗi không tìm thấy $wpdb:

<?php global $wpdb; ?>

SELECT Result

get_results thường được dùng nhiều. Để lấy nhiều hàng kết quả trả về, bạn hãy dùng get_results, hàm này sẽ trả về kết quả theo dạng array – mảng dữ liệu. Mỗi phần tử của mảng giống như một hàng truy vấn từ get_row. Trả về NULL nếu kết quả trả về rỗng.

<?php $wpdb->get_results( 'query', output_type ); ?> 

query: là câu lệnh sql bạn bạn muốn chạy
output_type: bạn hãy chọn một trong 4 biến dưới dây. Nếu để trống mặc định là OBJECT.
– OBJECT – kết quả đầu ra là mảng đối tượng kết hợp. Mảng bắt đầu từ không
– OBJECT_K – kết quả đầu ra là mảng đối tượng kết hợp. Mảng bắt đầu từ 1
– ARRAY_A – kết quả đầu ra là mảng kết hợp, sử dụng tên của cột làm khóa – key
– ARRAY_N – kết quả đầu ra là mảng kết hợp, được lập chỉ mục bằng số

<?php
global $wpdb;
$myposts = $wpdb->get_results( "SELECT ID, post_title FROM $wpdb->posts" );

foreach ( $myposts as $item ) 
{
	echo $item->post_title . "</br>";
}
exit;
?>

INSERT row

insert dữ liệu vào database wordpress.

<?php $wpdb->insert( $table, $data, $format ); ?> 

table (string): tên của bảng dữ liệu bạn muốn thêm.
data (array): dữ liệu insert (column => giá trị)
format (array – không bắt buộc): là kiểu dữ liệu định nghĩa cho từng cột $data bạn truyền vào. Nếu bạn bỏ qua, tất cả dữ liệu $data bạn insert vào db được hiểu là chuỗi(string).

<?php
$wpdb->insert( 
	'tên table', 
	array( 
		'cột 1' => 'giá trị của bạn', 
		'cột 2' => 123 
	), 
	array( 
		'%s', 
		'%d' 
	) 
);
?>

Các giá trị format được phép:
%s là chuỗi
%d là số nguyên (integer)
%f là số thực (float)

Sau khi insert, ID của hàng sẽ tự động tăng bởi AUTO_INCREMENT của MySQL, để lấy ID vừa mới thêm:

$wpdb->insert_id

UPDATE rows

cập nhật một hàng bất kỳ trong bảng dữ liệu khi thỏa mản điều kiện bạn đưa ra. Trả về false nếu xảy ra lỗi không cập nhật được.

<?php $wpdb->update( $table, $data, $where, $format = null, $where_format = null ); ?> 

table (string): tên của bảng cần update.
data (array): dữ liệu được cập nhật – update (column => value).
where (array): điều kiện để dữ liệu được update, bạn có thể thêm nhiều điều kiện (column => value).
format (array)(không bắt buộc): là kiểu dữ liệu định nghĩa cho từng cột $data bạn truyền vào. Nếu bạn bỏ qua, tất cả dữ liệu $data bạn insert vào db được hiểu là chuỗi(string).
where_format (array-string)(không bắt buộc): là kiểu dữ liệu của giá trị điều kiện của bạn, vd: điều kiện ID => 1, tức là where_format là array( ‘%d’ )

Các giá trị format được phép:
%s là chuỗi
%d là số nguyên (integer)
%f là số thực (float)

Ví dụ update

<?php
$wpdb->update( 
	'table', 
	array( 
		'column1' => 'value1',	// string
		'column2' => 'value2'	// integer (number) 
	), 
	array( 'ID' => 1 ), 
	array( 
		'%s',	// value1
		'%d'	// value2
	), 
	array( '%d' ) 
);
?>

DELETE Rows

Xóa bất kỳ hàng nào bạn muốn, nếu thỏa mản điều kiện bạn đưa ra. Cách sử dụng cũng giống như inser và update.

<?php $wpdb->delete( $table, $where, $where_format = null ); ?>

Ví dụ delete

// Default usage.
$wpdb->delete( 'table', array( 'ID' => 1 ) );

// Using where formatting.
$wpdb->delete( 'table', array( 'ID' => 1 ), array( '%d' ) );

Updating