#reConnect
Author: Devimplode
License: CreativeCommons by-nc-sa
Description:
This project contains some php classes to access several database systems with one object oriented interface
reConnect allows access to classic RDBMS and NoSQL-databases with one object oriented interface
Please look in index.php for a quick example.
##SQL to reConnect interface
INSERT INTO users ( `foo`, `bar` ) VALUES( 'herp', 'derp' )
$db->users->insert(array('foo'=>'herp','bar'=>'derp'));
SELECT a,b FROM users
$db->users->select(array('a','b'));
SELECT a as 'key',b FROM users
$db->users->select(array('a'=>'key','b'));
SELECT * FROM users WHERE age=33
$db->users->where(array("age" => 33));
SELECT a,b FROM users WHERE age=33
$db->users->select(array('a','b'))->where(array("age" => 33));
SELECT a,b FROM users WHERE age=33 ORDER BY name
$db->users->select(array('a','b'))->where(array("age" => 33))->sort(array("name"));
SELECT * FROM users WHERE age>33
$db->users->where(array("age" => array('%gt' => 33)));
SELECT * FROM users WHERE age<33
$db->users->where(array("age" => array('%lt' => 33)));
SELECT * FROM users WHERE age <> 33
$db->users->where(array("age" => array('%ne' => 33)));
SELECT * FROM users WHERE name LIKE "%Joe%"
$db->users->where(array("name" => array('%match' => "Joe")));
SELECT * FROM users WHERE name LIKE "Joe%"
$db->users->where(array("name" => array('%match' => "^Joe")));
SELECT * FROM users WHERE age>33 AND age<=40
$db->users->where(array("age" => array('%gt' => 33, '%lte' => 40)));
SELECT * FROM users ORDER BY name DESC
$db->users->sort(array("name" => reconnect::DESC));
SELECT * FROM users WHERE a=1 and b='q'
$db->users->where(array("a" => 1, "b" => "q"));
SELECT * FROM users LIMIT 1
$db->users->where()->limit(1);
SELECT * FROM users LIMIT 10 OFFSET 20
SELECT * FROM users LIMIT 20, 10
$db->users->where()->limit(10)->offset(20);
SELECT * FROM users WHERE a=1 or b=2
$db->users->where(array('%or' => array(array("a" => 1), array("b" => 2))));
SELECT * FROM users WHERE a=1 or ( b=2 and a>=1)
$db->users->where(array('%or' => array(array("a" => 1), array(array("b" => 2),array("a"=>array("$gte"=>1))))));
EXPLAIN SELECT * FROM users WHERE z=3
$db->users->where(array("z" => 3))->explain()
SELECT DISTINCT last_name FROM users
$db->users->select('last_name')->distinct();
SELECT COUNT(*) FROM users
$db->users->count();
SELECT COUNT(*) FROM users where AGE > 30
$db->users->where(array("age" => array('%gt' => 30)))->count();
SELECT COUNT(AGE) from users
$db->users->where(array("age" => array('%exists' => true)))->count();
UPDATE users SET a=1,c='foo' WHERE b='q'
$db->users->update(array(array("a" => 1),array('c'=>'foo')))->where(array("b" => "q"));
UPDATE users SET a=a+2 WHERE b='q'
$db->users->update(array("a" => array('%inc' => 2)))->where(array("b" => "q"));
DELETE FROM users WHERE z="abc"
$db->users->remove()->where(array("z" => "abc"));
DELETE FROM users WHERE z>=10 LIMIT 20
$db->users->remove()->where(array("z" => array('%gte'=>10)))->limit(20);
##Creating a table ###with mysql
$table=$conn->test->createTable(array(
'name'=>'temp',
//'copy'=>'table',
'fields'=>array(
'id'=>array(
'type'=>'tinyint',
'length'=>'3',
'decimals'=>false,
'unsigned'=>false,
'zerofill'=>false,
'mode'=>'unicode',//unicode | ascii | binaray
'data'=>array('val1','val2','val3','val4'),//enum, set
'null'=>1,//1(NULL),false(DEFAULT),-1(NOT NULL)
'default'=>false,
'auto_increment'=>false,
'unique'=>false,
'primary'=>true,
'comment'=>''
)
),
'temporary'=>false,
'quiet'=>false,
'primary'=>array(
'id'
),
'options'=>array(
'autoincrement'=>0,
'type'=>'InnoDB',
'row_format'=>'compact',
'charset'=>'utf8',
'collate'=>'utf8_bin',
'comment'=>'Testtable',
'min_rows'=>false,
'max_rows'=>false,
'avg_row_length'=>false,
/*MyISAM only*/
'checksum'=>false,
'PACK_KEYS'=>false,
'delay_key_write'=>false,
)
));
###with mongodb
$table=$conn->test->createTable(array('name'=>'temp'));