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'));
|
array_map('do_include', glob(DRIVER_PATH.'/firebird/*.php'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filter out db rows into one array
|
* Filter out db rows into one array
|
||||||
*
|
*
|
||||||
|
@ -16,9 +16,8 @@
|
|||||||
* Firebird result class to emulate PDOStatement Class - only implements
|
* Firebird result class to emulate PDOStatement Class - only implements
|
||||||
* data-fetching methods
|
* data-fetching methods
|
||||||
*
|
*
|
||||||
* @todo Implement more of the PDOStatement Class
|
|
||||||
*/
|
*/
|
||||||
class Firebird_Result {
|
class Firebird_Result extends PDOStatement {
|
||||||
|
|
||||||
private $statement;
|
private $statement;
|
||||||
|
|
||||||
@ -41,7 +40,7 @@ class Firebird_Result {
|
|||||||
* @param int $fetch_style
|
* @param int $fetch_style
|
||||||
* @return mixed
|
* @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))
|
if ( ! is_null($statement))
|
||||||
{
|
{
|
||||||
@ -72,7 +71,7 @@ class Firebird_Result {
|
|||||||
* @param int $fetch_style
|
* @param int $fetch_style
|
||||||
* @return mixed
|
* @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();
|
$all = array();
|
||||||
|
|
||||||
@ -108,7 +107,7 @@ class Firebird_Result {
|
|||||||
* @param array $args
|
* @param array $args
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function execute($args)
|
public function execute($args = NULL)
|
||||||
{
|
{
|
||||||
//Add the prepared statement as the first parameter
|
//Add the prepared statement as the first parameter
|
||||||
array_unshift($args, $this->statement);
|
array_unshift($args, $this->statement);
|
||||||
|
@ -33,280 +33,5 @@ class FirebirdQBTest extends QBTest {
|
|||||||
$this->db = new Query_Builder($params);
|
$this->db = new Query_Builder($params);
|
||||||
|
|
||||||
// echo '<hr /> Firebird Queries <hr />';
|
// 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