예제 #1
0
 function test_default()
 {
     $query = new SQL_Query('table');
     $query->addSelect('myPara');
     $query->resetSelect();
     $this->assertEquals(array(), $query->getSelect());
 }
예제 #2
0
 function test_twoAndExpression()
 {
     $query = new SQL_Query('table');
     $query->addGroup('name');
     $query->addGroup('STRLEN(name)');
     $this->assertEquals(array('name', 'STRLEN(name)'), $query->getGroup());
 }
예제 #3
0
 function test_twoParas()
 {
     $query = new SQL_Query();
     $query->addGroup('name', 'MAX(num)');
     $ren = new $this->_renderer($query);
     $this->assertStringEquals('name , MAX(num)', $ren->renderGroup());
 }
예제 #4
0
 function test_twoMixedAndCollate()
 {
     $query = new SQL_Query();
     $query->addOrder(array('name', false, 'x'), array('surname', true, 'y'));
     $ren = new $this->_renderer($query);
     $this->assertStringEquals('name COLLATE x, surname COLLATE y DESC', $ren->renderOrder());
 }
예제 #5
0
 function test_default()
 {
     $query = new SQL_Query('table');
     $query->addGroup('id');
     $query->resetGroup();
     $this->assertEquals(null, $query->getGroup());
 }
예제 #6
0
 function test_withJoin()
 {
     $join = new SQL_Query_Join();
     $query = new SQL_Query('');
     $query->setFrom($join);
     $this->assertEquals($join, $query->getFrom());
 }
예제 #7
0
 function test_quotedField()
 {
     $query = new SQL_Query('city');
     $query->addWhere('name', '<>', '\'wolfram\'');
     $ren = new $this->_renderer($query);
     $this->assertStringEquals('name <> \'wolfram\'', $ren->renderCondition());
 }
예제 #8
0
 function test_default()
 {
     $query = new SQL_Query('table');
     $query->addOrder(array('col', true));
     $query->resetOrder();
     $this->assertEquals(array(), $query->getOrder());
 }
예제 #9
0
 function test_default()
 {
     $query = new SQL_Query('table');
     $query->addWhere('1', '<>', '2');
     $query->resetWhere();
     $this->assertEquals(null, $query->getWhere());
 }
예제 #10
0
 function test_default()
 {
     $query = new SQL_Query('table');
     $query->addWhere('1', '<>', '2');
     $query->addSelect('id', 'name');
     $query->reset();
     $this->assertEquals(new SQL_Query('table'), $query);
 }
예제 #11
0
 function test_join()
 {
     $query = new SQL_Query();
     $join = new SQL_Query_Join();
     $join->addJoin(array('t' => 'table', 'table1'), new SQL_Condition('table.x', '=', 'table1.x'));
     $query->setFrom($join);
     $ren = new $this->_renderer($query);
     $this->assertStringEquals('table t INNER JOIN table1 ON table.x = table1.x', $ren->renderFrom());
 }
예제 #12
0
 function test_collateAndDesc()
 {
     $query = new SQL_Query('table');
     // add a collate clause
     // this should become: ORDER BY col COLLATE collate_name ASC, col2
     $query->addOrder(array('col', false, 'col1'));
     $query->addOrder('col2');
     $this->assertEquals(array(array('col', false, 'col1'), array('col2', false)), $query->getOrder());
 }
예제 #13
0
 function test_twoParams()
 {
     $query = new SQL_Query('table');
     $query->addWhere(2, '=', 2);
     // test this ...
     $query->addWhere(new SQL_Condition(1, '=', 1), 'OR');
     $cond = new SQL_Condition(2, '=', 2);
     $cond->add(new SQL_Condition(1, '=', 1), 'OR');
     $this->assertEquals($cond, $query->getWhere());
 }
예제 #14
0
 function test_mixedAlotPara()
 {
     $query = new SQL_Query('table');
     $query->addDontSelect('myPara', 'myPara1');
     $query->addDontSelect(array('myPara2', 'myPara3'));
     $query->addDontSelect(array('myPara4'));
     $query->addDontSelect('myPara5');
     $this->assertEquals(array('myPara', 'myPara1', 'myPara2', 'myPara3', 'myPara4', 'myPara5'), $query->getDontSelect());
 }
예제 #15
0
 function test_slightlyDifferentQueries1()
 {
     $query = new SQL_Query('table');
     $query->addWhere('1', '<>', '2');
     $query->addSelect('id', 'name');
     $query1 = $query;
     $query->resetSelect();
     $query->addSelect('name', 'id');
     $this->assertFalse($query1->hashKey() == $query->hashKey());
 }
예제 #16
0
function &SQL_Query_exec($query)
{
    $sql = new SQL_Query($query);
    return $sql->execute();
}
예제 #17
0
*/
ini_set('error_reporting', E_ALL);
ini_set('include_path', realpath(dirname(__FILE__) . '/../../..'));
#define('DB_DSN',  'mysql://root@localhost/test');
$tableStructures = array();
require_once 'SQL/Query.php';
require_once 'SQL/Query/Join.php';
require_once 'SQL/Query/Condition.php';
/*$aliases = array(
				TABLE_CONTACT     =>  'contact'
				,TABLE_CONTACT2TREE  =>  'contact2tree'
				,TABLE_CONTACTTREE   =>  'contactTree'
				);
*/
#DB_QueryTool::addAliases($aliases);
$query = new SQL_Query_Join('contact');
$query->autoJoin('contact2tree', 'contactTree');
$query->addLeftJoin('email', new SQL_Query_Condition('email.contact_id', '=', 'id', 'AND', 'email.primaryMail', '=', 1));
$query->addWhere('contactTree.user_id', '=', 7);
$query->addOrder('surname,name');
// this is just to demonstrate nested where clauses, the query doesnt really make sense, at least not to me :-)
// SELECT * FROM user WHERE (name LIKE 'n%' AND name LIKE 'a%') OR name LIKE 's%'
$query = new SQL_Query('user');
$c1 = $query->condition('name', 'LIKE', '"n%"');
$c1->add('name', 'LIKE', '"a%"', 'AND');
$query->addWhere($c1, 'OR', $query->condition('name', 'LIKE', '"%s"'));
require_once 'SQL/Query/Renderer.php';
$render = SQL_Query_Renderer::factory($query, $tableStructures);
print $render->toString();
print "<pre>";
print_r($query);
예제 #18
0
 function test_deleteSearchedWithWhere()
 {
     $query = new SQL_Query('city', 'delete');
     $query->addWhere('id', '=', 1);
     $ren = new $this->_renderer($query);
     $this->assertStringEquals('DELETE FROM city WHERE id = 1', $ren->render());
 }
예제 #19
0
 function test_default()
 {
     $query = new SQL_Query('table');
     $this->assertEquals(new SQL_Condition('1', '<>', '2'), $query->condition('1', '<>', '2'));
 }
예제 #20
0
 function test_setType()
 {
     $query = new SQL_Query('');
     $query->setType('delete');
     $this->assertEquals('delete', $query->getType());
 }
예제 #21
0
파일: Insert.php 프로젝트: radicalsuz/amp
 function SQL_Query_Insert($table = null)
 {
     parent::SQL_Query($table, 'insert');
 }
예제 #22
0
파일: database.php 프로젝트: ateliee/pmp
 /**
  * @param string $name
  * @param null $alias
  * @return SQL_Query
  */
 public function createQuery($name = "", $alias = null)
 {
     $query = new SQL_Query($this);
     if ($name != "") {
         $query->select($name, $alias);
     }
     return $query;
 }