Opened 15 years ago
Closed 15 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
@
15 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.)