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'], '?', 42) !== false) {$query = substr($sql['query'], 0, strpos($sql['query'], '?', 42)+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);}}$debugLogger = new MyLogger();$driver = XML_Query2XML_Driver::factory($db);$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',':2000'),'query' => 'SELECT * FROM album WHERE artist_id = ? AND NOT albumid = ?','limit' => 1,'offset' => 2),'sql_options' => array('cached' => true),'rootTag' => 'albums','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 = ? AND NOT albumid = ?; LIMIT:1; OFFSET:2 (USING CACHING); DATA:1,2000FROM DB: SELECT * FROM album WHERE artist_id = ? AND NOT albumid = ?DONEQUERY: SELECT * FROM album WHERE artist_id = ? AND NOT albumid = ?; LIMIT:1; OFFSET:2 (USING CACHING); DATA:2,2000FROM DB: SELECT * FROM album WHERE artist_id = ? AND NOT albumid = ?DONEQUERY: SELECT * FROM album WHERE artist_id = ? AND NOT albumid = ?; LIMIT:1; OFFSET:2 (USING CACHING); DATA:3,2000FROM DB: SELECT * FROM album WHERE artist_id = ? AND NOT albumid = ?DONEQUERY: SELECT * FROM album WHERE artist_id = ? AND NOT albumid = ?; LIMIT:1; OFFSET:2 (USING CACHING); DATA:1,2000DONEQUERY: SELECT * FROM album WHERE artist_id = ? AND NOT albumid = ?; LIMIT:1; OFFSET:2 (USING CACHING); DATA:2,2000DONEQUERY: SELECT * FROM album WHERE artist_id = ? AND NOT albumid = ?; LIMIT:1; OFFSET:2 (USING CACHING); DATA:3,2000DONE