I’ve been writing a few custom plugins for my site and I was wondering about the correct way to interact with $wpdb. My plugin executes a few queries using the global $wpdb connection. I noticed that a $wpdb->close(); method has been added to WordPress, to close the database connection object.
My question is: Should a plugin close out the connection after executing queries?
I have been searched on the folder of some famous plugin(like rank math, Yoast). they use $wpdb a lot but I could not find $wpdb->close() on their code. I mean at the end of their function they do not close query.
for example, I have been writing a function for counting post from last week
function get_posts_count_from_last_week($post_type = 'post')
{
global $wpdb;
$numposts = $wpdb->get_var($wpdb->prepare("SELECT COUNT(ID) " . "FROM " . $wpdb->posts . " WHERE post_status='publish' AND post_type= %s AND post_date> %s", $post_type, date('Y-m-d H:i:s', strtotime('-168 hours'))));
return $numposts;
}
I get a lot of “WordPress database error Commands out of sync; you can’t run this command now for query SELECT”
So I have to put $wpdb->close();
before return and after that I did not get Commands out of sync
at all.
I confuse, why I have to close the connection when other plugins don't do that!
by the way in my theme I have some functions with global $wpdb
but, again there is not any $wpdb->close()
for closing.