Blame | Letzte Änderung | Log anzeigen | RSS feed
--TEST--XML_Query2XML::enableDebugLog() with $options['sql_options']['cached'] = true--SKIPIF--<?php $db_layers = array('MDB2', 'DB'); require_once dirname(dirname(__FILE__)) . '/skipif.php'; ?>--FILE--<?phprequire_once 'XML/Query2XML.php';require_once dirname(dirname(__FILE__)) . '/db_init.php';class MyLogger{public $data = '';public function log($str){$this->data .= $str . "\n";}}class MyDriver extends XML_Query2XML_Driver{public function __construct($driver, $logger){$this->_driver = $driver;$this->_logger = $logger;}public function getAllRecords($sql, $configPath){// this allows us to notice when the results are fetched from the DBif (strpos($sql['query'], '?') !== false) {$query = substr($sql['query'], 0, strpos($sql['query'], '?')+1);} else {$query = $sql['query'];}$this->_logger->log('FROM DB: ' . $query);return $this->_driver->getAllRecords($sql, $configPath);}public function preprocessQuery(&$query, $configPath){return $this->_driver->preprocessQuery($query, $configPath);}}$driver = XML_Query2XML_Driver::factory($db);$debugLogger = new MyLogger();$query2xml =& XML_Query2XML::factory(new MyDriver($driver, $debugLogger));$query2xml->enableDebugLog($debugLogger);$dom = $query2xml->getXML('SELECT * FROM artist UNION ALL SELECT * FROM artist',array('rootTag' => 'music_library','rowTag' => 'artist','idColumn' => 'artistid','elements' => array('artistid','name','birth_year','birth_place','genre','albums' => array('sql' => array('data' => array('artistid'),'query' => 'SELECT * FROM album WHERE artist_id = ?'),'sql_options' => array('cached' => true),'rootTag' => 'albums','rowTag' => 'album','idColumn' => 'albumid','elements' => array('albumid','title','published_year','comment')),'albums2' => array('sql' => array('data' => array('artistid'),'query' => 'SELECT * FROM album WHERE artist_id = ?','limit' => 1),'sql_options' => array('cached' => true),'rootTag' => 'albums2','rowTag' => 'album','idColumn' => 'albumid','elements' => array('albumid','title','published_year','comment')))));$query2xml->disableDebugLog();echo $debugLogger->data;?>--EXPECT--QUERY: SELECT * FROM artist UNION ALL SELECT * FROM artistFROM DB: SELECT * FROM artist UNION ALL SELECT * FROM artistDONEQUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:1FROM DB: SELECT * FROM album WHERE artist_id = ?DONEQUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:1FROM DB: SELECT * FROM album WHERE artist_id = ?DONEQUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:2FROM DB: SELECT * FROM album WHERE artist_id = ?DONEQUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:2FROM DB: SELECT * FROM album WHERE artist_id = ?DONEQUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:3FROM DB: SELECT * FROM album WHERE artist_id = ?DONEQUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:3FROM DB: SELECT * FROM album WHERE artist_id = ?DONEQUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:1DONEQUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:1DONEQUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:2DONEQUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:2DONEQUERY: SELECT * FROM album WHERE artist_id = ? (USING CACHING); DATA:3DONEQUERY: SELECT * FROM album WHERE artist_id = ?; LIMIT:1; OFFSET:0 (USING CACHING); DATA:3DONE