<?php
/**
* EndSQL
*
* Database abstract layer.
*
*
* Copyright (c) 2013-2014, Woestler
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* * Neither the name of the EndSQL Team nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
* AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package EndSQL
* @version 1.0.0
* @copyright 2013-2014 Woestler
* @author Woestler
* @link http://EndSQL.org/ EndSQL
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
*/
include '../Autoload.php';
$db = EndSql::getInstance();
$select = $db->select();
/*************************
subquery
**************************/
$select->from("context");
$subselect = $db->select("tumblr")->columns(array("type_id"));
$subselect->where()->equal(array('type_id' => 333 ));
$subselect->limit(1);
$select->where()->equal(array("type_id" => $subselect));
$select->order(array("id DESC","caption DESC"))->limit(2);;
echo $select->getSql()."\n";
// Output : SELECT * FROM context WHERE ( type_id = (SELECT type_id FROM tumblr WHERE ( type_id = 333) LIMIT 1)) ORDER BY id DESC,caption DESC LIMIT 2
$data = $select->exec();
if($data) {
//print_r($data);
} else {
print_r($select->getLastError());
}
/*************************************
JOIN method
****************************************/
$select->clear();
$select->from("context")->join("tumblr",array("context.type_id"=>"tumblr.type_id"),EndSql::JOIN_RIGHT);
//default (EndSql::JOIN_INNNER)
echo $select->getSql()."\n";
// Output: SELECT * FROM context inner JOIN tumblr ON context.type_id=tumblr.type_id
$data = $select->exec();
if($data) {
// print_r($data);
} else {
print_r($select->getLastError());
}
/**************************************
GROUP method
********************************************/
$select->clear();
$select->from("context")->group("type_id")->columns(array("count(*) as total","id"));
echo $select->getSql()."\n";
// SELECT id FROM context GROUP BY type_id
/**************************************************
ORDER method;
***************************************************/
$select->clear();
$select->from("context")->order("id DESC");
// ->order(array("id DESC","type_id DESC"))
echo $select->getSql()."\n";
//SELECT * FROM context ORDER BY id DESC
/*****************************************************
LIMIT method
***************************************************/
$select->clear();
$select->from("context")->limit(3);
// ->limit(array(1,4));
echo $select->getSql()."\n";
//SELECT * FROM context LIMIT 3
/**************************************************
|