Somehow my post counts are incorrect due to inserting rows via php. I have the following code to update the count, is it correct?
global $wpdb;
$result = mysql_query("SELECT term_id,term_taxonomy_id FROM $wpdb->term_taxonomy where taxonomy = 'category'");
while ($row = mysql_fetch_array($result)) {
$term_taxonomy_id = $row['term_taxonomy_id'];
$countresult = mysql_query("SELECT object_id FROM $wpdb->term_relationships WHERE object_id IN (SELECT ID FROM $wpdb->posts WHERE post_type="post" AND post_status="publish") AND term_taxonomy_id = '$term_taxonomy_id'");
$count = mysql_num_rows($countresult);
mysql_query("UPDATE $wpdb->term_taxonomy SET count="$count" WHERE term_taxonomy_id = '$term_taxonomy_id'");
}