Blog

  • How to query wordpress database using $wpdb class

    As we are familiar with the functions that WordPress uses to interact with the database. Some common functions are WP_Query, wp_insert_post, get_posts, update_post_meta which can be used to get the job done. But sometimes we required accessing the database directly, especially when we are going to fetch data from a custom table. Wordpress has also provided a valid way to make it easy for the users by introducing a $wpdb class.

     

    Working with $wpdb Class

     

    Working with $wpdb class is similar to working with MySql and other similar languages.We need to keep only few function names in mind. We can understand it by an example,

     

    <?php 
    global $wpdb;
       $posts = $wpdb--->get_results("SELECT post_title, post_author FROM $wpdb->posts WHERE post_status = 'publish' AND post_type='media' DESC LIMIT 0,5");  
    ?>        
    

     

    Fetching Results from the Database

     

    $wpdb has four helper functions to retrieve data from the query, you can use one of four functions to structure the data.

     

    GET_RESULTS() It is most commonly used function, it creates a two dimensions array of the data that contains separate objects for each row.

     

    GET_ROW() When we need to fetch only one row from the database. It gives one-dimensional output.

     

    GET_COL() It is similar to get_row() functions instead row it gives a single column which is helpful when we need to get only post ID.

     

    GET_VAR() Sometimes we need to get only one value from the database, then we can use get_var() to retrieve a value.

     

    Inserting into the Database

     

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

     

    Here insert function takes three parameters. $table parameter will take name of the table. $data is an array contains a combination of key-value pairs. $format is optional which specifies the data types of the values.

     

    Updating data into the Database

     

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

     

    Set the values for $table, $data and $where parameter to update the changes in database.

     

    You can read more about $wpdb class and it's functions here

     

    Note: The wpdb() class should not be called directly. Always use the global $wpdb object for database operations.

     

     

Tags: nosql