0
0
Wordpressframework~5 mins

Direct database queries (wpdb) in Wordpress

Choose your learning style9 modes available
Introduction

Direct database queries let you get or change data in your WordPress site quickly. You use wpdb to talk to the database safely.

You want to get custom data not available through WordPress functions.
You need to update or delete specific database records directly.
You want to run a custom SQL query for reports or stats.
You need to insert new data into a custom table.
You want to optimize performance by writing your own query.
Syntax
Wordpress
$wpdb->get_results( 'SQL QUERY' );
$wpdb->get_var( 'SQL QUERY' );
$wpdb->query( 'SQL QUERY' );

Use get_results to get multiple rows as objects.

Use get_var to get a single value from the database.

Use query for insert, update, or delete operations.

Examples
Get all published posts as an array of objects.
Wordpress
$results = $wpdb->get_results( "SELECT * FROM wp_posts WHERE post_status = 'publish'" );
Get the total number of users as a single number.
Wordpress
$count = $wpdb->get_var( "SELECT COUNT(*) FROM wp_users" );
Change the site color option directly in the database.
Wordpress
$wpdb->query( "UPDATE wp_options SET option_value = 'blue' WHERE option_name = 'site_color'" );
Sample Program

This code gets the latest 3 published post titles from the WordPress database and prints them line by line.

Wordpress
<?php
// Access the global wpdb object
global $wpdb;

// Get the titles of the 3 most recent published posts
$recent_posts = $wpdb->get_results(
    "SELECT post_title FROM {$wpdb->prefix}posts WHERE post_status = 'publish' ORDER BY post_date DESC LIMIT 3"
);

// Print each post title
foreach ($recent_posts as $post) {
    echo $post->post_title . "\n";
}
?>
OutputSuccess
Important Notes

Always use $wpdb->prefix to get the correct table prefix for your site.

Use prepared statements with $wpdb->prepare() to avoid SQL injection risks.

Direct queries bypass WordPress caching, so use them carefully to avoid performance issues.

Summary

wpdb lets you run SQL queries directly on the WordPress database.

Use get_results, get_var, and query for different query types.

Always write safe queries using $wpdb->prepare() and the table prefix.