. */ require_once('CFDBAbstractQueryResultsIterator.php'); class CFDBWpdbResultIterator extends CFDBAbstractQueryResultsIterator { /** * @var array[associative array] */ var $wpdbResults; /** * @var int */ var $wpdbIdx = 0; /** * @var int */ var $wpdbLen = 0; /** * Execute the query * @param $sql string query * @param $queryOptions array associative * @return void */ public function queryDataSource(&$sql, $queryOptions) { global $wpdb; $this->wpdbResults = $wpdb->get_results($sql, ARRAY_A); $this->wpdbLen = $wpdb->num_rows; } /** * Get the next row from query results * @return array associative */ public function fetchRow() { if ($this->wpdbIdx < $this->wpdbLen) { return $this->wpdbResults[$this->wpdbIdx++]; } return false; } /** * If you do not iterate over all the rows returned, be sure to call this function * on all remaining rows to free resources. * @return void */ public function freeResult() { global $wpdb; $wpdb->flush(); } }