Opened 12 years ago
Closed 12 years ago
#16336 closed enhancement (invalid)
wpdb::get_row never uses the cache
Reported by: |
|
Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | |
Component: | Database | Keywords: | close |
Focuses: | Cc: |
Description (last modified by )
wpdb::get_row never uses the cached results, look at this
function get_row( $query = null, $output = OBJECT, $y = 0 ) { $this->func_call = "\$db->get_row(\"$query\",$output,$y)"; if ( $query ) $this->query( $query ); else return null; // more code
and then
function query( $query ) { if ( ! $this->ready ) return false; // some queries are made before the plugins have been loaded, and thus cannot be filtered with this method if ( function_exists( 'apply_filters' ) ) $query = apply_filters( 'query', $query ); $return_val = 0; $this->flush();
See how the cache never gets called? if you write a query, the old one gets flushed without checking if it was the same as before, if you use null, null gets returned, an if($this->last_query != $query) needs to be put in ::query or the return null removed from ::get_row, I'd prefer the first solution.
Change History (3)
#1
@
12 years ago
- Component changed from General to Database
- Description modified (diff)
- Keywords close added
Note: See
TracTickets for help on using
tickets.
The caching is done on top of WPDB, not through it.
Also, what about DML queries? (INSERT, DELETE etc.)