Made Firebird_Result class Extend PDOStatement
This commit is contained in:
parent
16ad8b15d0
commit
f03afaa98b
@ -48,6 +48,8 @@ if (function_exists('fbird_connect'))
|
||||
array_map('do_include', glob(DRIVER_PATH.'/firebird/*.php'));
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Filter out db rows into one array
|
||||
*
|
||||
|
@ -16,9 +16,8 @@
|
||||
* Firebird result class to emulate PDOStatement Class - only implements
|
||||
* data-fetching methods
|
||||
*
|
||||
* @todo Implement more of the PDOStatement Class
|
||||
*/
|
||||
class Firebird_Result {
|
||||
class Firebird_Result extends PDOStatement {
|
||||
|
||||
private $statement;
|
||||
|
||||
@ -41,7 +40,7 @@ class Firebird_Result {
|
||||
* @param int $fetch_style
|
||||
* @return mixed
|
||||
*/
|
||||
public function fetch($fetch_style=PDO::FETCH_ASSOC, $statement=NULL)
|
||||
public function fetch($fetch_style=PDO::FETCH_ASSOC, $statement=NULL, $offset=NULL)
|
||||
{
|
||||
if ( ! is_null($statement))
|
||||
{
|
||||
@ -72,7 +71,7 @@ class Firebird_Result {
|
||||
* @param int $fetch_style
|
||||
* @return mixed
|
||||
*/
|
||||
public function fetchAll($fetch_style=PDO::FETCH_ASSOC, $statement=NULL)
|
||||
public function fetchAll($fetch_style=PDO::FETCH_ASSOC, $statement=NULL, $ctor_args=NULL)
|
||||
{
|
||||
$all = array();
|
||||
|
||||
@ -108,7 +107,7 @@ class Firebird_Result {
|
||||
* @param array $args
|
||||
* @return bool
|
||||
*/
|
||||
public function execute($args)
|
||||
public function execute($args = NULL)
|
||||
{
|
||||
//Add the prepared statement as the first parameter
|
||||
array_unshift($args, $this->statement);
|
||||
|
@ -33,280 +33,5 @@ class FirebirdQBTest extends QBTest {
|
||||
$this->db = new Query_Builder($params);
|
||||
|
||||
// echo '<hr /> Firebird Queries <hr />';
|
||||
}
|
||||
|
||||
function TestGet()
|
||||
{
|
||||
$query = $this->db->get('create_test ct');
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestGetLimit()
|
||||
{
|
||||
$query = $this->db->get('create_test', 2);
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestGetLimitSkip()
|
||||
{
|
||||
$query = $this->db->get('create_test', 2, 1);
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestHaving()
|
||||
{
|
||||
if (empty($this->db)) return;
|
||||
|
||||
$query = $this->db->select('id')
|
||||
->from('create_test')
|
||||
->group_by('id')
|
||||
->having(array('id >' => 1))
|
||||
->having('id !=', 3)
|
||||
->get();
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestOrHaving()
|
||||
{
|
||||
if (empty($this->db)) return;
|
||||
|
||||
$query = $this->db->select('id')
|
||||
->from('create_test')
|
||||
->group_by('id')
|
||||
->having(array('id >' => 1))
|
||||
->or_having('id !=', 3)
|
||||
->get();
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestSelectWhereGet()
|
||||
{
|
||||
$query = $this->db->select('id, key as k, val')
|
||||
->where('id >', 1)
|
||||
->where('id <', 800)
|
||||
->get('create_test', 2, 1);
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestSelectWhereGet2()
|
||||
{
|
||||
$query = $this->db->select('id, key as k, val')
|
||||
->where(' id ', 1)
|
||||
|
||||
->get('create_test', 2, 1);
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestSelectMax()
|
||||
{
|
||||
if (empty($this->db)) return;
|
||||
|
||||
$query = $this->db->select_max('id', 'di')
|
||||
->get('create_test');
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestSelectMin()
|
||||
{
|
||||
if (empty($this->db)) return;
|
||||
|
||||
$query = $this->db->select_min('id', 'di')
|
||||
->get('create_test');
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestSelectAvg()
|
||||
{
|
||||
if (empty($this->db)) return;
|
||||
|
||||
$query = $this->db->select_avg('id', 'di')
|
||||
->get('create_test');
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestSelectSum()
|
||||
{
|
||||
if (empty($this->db)) return;
|
||||
|
||||
$query = $this->db->select_sum('id', 'di')
|
||||
->get('create_test');
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestSelectDistinct()
|
||||
{
|
||||
if (empty($this->db)) return;
|
||||
|
||||
$query = $this->db->select_sum('id', 'di')
|
||||
->distinct()
|
||||
->get('create_test');
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestGetWhere()
|
||||
{
|
||||
if (empty($this->db)) return;
|
||||
|
||||
$query = $this->db->get_where('create_test', array('id !=' => 1), 2, 1);
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestSelectGet()
|
||||
{
|
||||
$query = $this->db->select('id, key as k, val')
|
||||
->get('create_test', 2, 1);
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestSelectFromGet()
|
||||
{
|
||||
$query = $this->db->select('id, key as k, val')
|
||||
->from('create_test ct')
|
||||
->where('id >', 1)
|
||||
->get();
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestSelectFromLimitGet()
|
||||
{
|
||||
$query = $this->db->select('id, key as k, val')
|
||||
->from('create_test ct')
|
||||
->where('id >', 1)
|
||||
->limit(3)
|
||||
->get();
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestOrderBy()
|
||||
{
|
||||
$query = $this->db->select('id, key as k, val')
|
||||
->from('create_test')
|
||||
->where('id >', 0)
|
||||
->where('id <', 9000)
|
||||
->order_by('id', 'DESC')
|
||||
->order_by('k', 'ASC')
|
||||
->limit(5,2)
|
||||
->get();
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestOrderByRandom()
|
||||
{
|
||||
$query = $this->db->select('id, key as k, val')
|
||||
->from('create_test')
|
||||
->where('id >', 0)
|
||||
->where('id <', 9000)
|
||||
->order_by('id', 'rand')
|
||||
->limit(5,2)
|
||||
->get();
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestOrWhere()
|
||||
{
|
||||
$query = $this->db->select('id, key as k, val')
|
||||
->from('create_test')
|
||||
->where(' id ', 1)
|
||||
->or_where('key >', 0)
|
||||
->limit(2, 1)
|
||||
->get();
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestGroupBy()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*function TestGroupBy()
|
||||
{
|
||||
$query = $this->db->select('id, key as k, val')
|
||||
->from('create_test')
|
||||
->where('id >', 0)
|
||||
->where('id <', 9000)
|
||||
->group_by('k')
|
||||
->group_by('val')
|
||||
->order_by('id', 'DESC')
|
||||
->order_by('k', 'ASC')
|
||||
->limit(5,2)
|
||||
->get();
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}*/
|
||||
|
||||
function TestLike()
|
||||
{
|
||||
$query = $this->db->from('create_test')
|
||||
->like('key', 'og')
|
||||
->get();
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestWhereIn()
|
||||
{
|
||||
$query = $this->db->from('create_test')
|
||||
->where_in('key', array(12, 96, "works"))
|
||||
->get();
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestJoin()
|
||||
{
|
||||
$query = $this->db->from('create_test')
|
||||
->join('create_join cj', 'cj.id = create_test.id')
|
||||
->get();
|
||||
|
||||
$this->assertIsA($query, 'Firebird_Result');
|
||||
}
|
||||
|
||||
function TestInsert()
|
||||
{
|
||||
$query = $this->db->set('id', 4)
|
||||
->set('key', 4)
|
||||
->set('val', 5)
|
||||
->insert('create_test');
|
||||
|
||||
$this->assertTrue($query);
|
||||
}
|
||||
|
||||
function TestUpdate()
|
||||
{
|
||||
$query = $this->db->set('id', 4)
|
||||
->set('key', 'gogle')
|
||||
->set('val', 'non-word')
|
||||
->where('id', 4)
|
||||
->update('create_test');
|
||||
|
||||
$this->assertTrue($query);
|
||||
}
|
||||
|
||||
function TestDelete()
|
||||
{
|
||||
$query = $this->db->where('id', 4)->delete('create_test');
|
||||
|
||||
$this->assertTrue($query);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user