97 lines
1.9 KiB
PHP
97 lines
1.9 KiB
PHP
<?php defined('SYSPATH') or die('No direct access allowed.');
|
|
|
|
/**
|
|
* TSM database result. See [Results](/database/results) for usage and examples.
|
|
*
|
|
* @package PTA
|
|
* @subpackage TSM
|
|
* @category Query/Result
|
|
* @author Deon George
|
|
* @copyright (c) 2010 phpTSMadmin Development Team
|
|
* @license http://phptsmadmin.sf.net/license.html
|
|
*/
|
|
class Database_TSM_Result extends Database_Result {
|
|
|
|
protected $_internal_row = 0;
|
|
private $_rows;
|
|
|
|
public function __construct($result, $sql, $as_object = FALSE, array $params = NULL)
|
|
{
|
|
parent::__construct($result, $sql, $as_object, $params);
|
|
|
|
$start = FALSE;
|
|
foreach ($result as $line) {
|
|
if (! trim($line)) {
|
|
if ($start)
|
|
$this->_internal_row++;
|
|
|
|
continue;
|
|
}
|
|
|
|
list($k,$v) = explode(':',$line,2);
|
|
|
|
$this->_rows[$this->_internal_row][trim($k)] = trim($v);
|
|
$start = TRUE;
|
|
}
|
|
|
|
$this->_total_rows = $this->_internal_row;
|
|
$this->_internal_row = 0;
|
|
}
|
|
|
|
public function __destruct()
|
|
{
|
|
return;
|
|
}
|
|
|
|
public function seek($offset)
|
|
{
|
|
if ($this->offsetExists($offset))
|
|
{
|
|
// Set the current row to the offset
|
|
$this->_current_row = $this->_internal_row = $offset;
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
{
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
public function current()
|
|
{
|
|
if ($this->_current_row !== $this->_internal_row AND ! $this->seek($this->_current_row))
|
|
return FALSE;
|
|
|
|
if ($this->_as_object === TRUE)
|
|
{
|
|
// Return an stdClass
|
|
return $this;
|
|
}
|
|
elseif (is_string($this->_as_object))
|
|
{
|
|
// Return an object of given class name
|
|
$o = new $this->_as_object;
|
|
|
|
return $o->_load_values($this->_rows[$this->_current_row]);
|
|
}
|
|
else
|
|
{
|
|
// Return an array of the row
|
|
return $this->_rows[$this->_current_row];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get a row value from the query
|
|
*
|
|
* TSM returns all columns in upper case
|
|
*/
|
|
public function get($name, $default = NULL) {
|
|
$name = strtoupper($name);
|
|
|
|
return parent::get($name,$default);
|
|
}
|
|
} // End Database_TSM_Result
|
|
?>
|