예제 #1
0
파일: sample.php 프로젝트: ackintosh/higher
<?php

require_once __DIR__ . '/vendor/autoload.php';
/**
 * Move config.yml.sample to config.yml
 */
$config = (new Ackintosh\Higher\Config())->parse()->setTableDir(__DIR__ . '/table');
$repo = new Ackintosh\Higher\Repository($config);
$connectionManager = new Ackintosh\Higher\ConnectionManager($config);
$query = new Ackintosh\Higher\Query($connectionManager);
$users = $repo->get('users');
$orders = $repo->get('orders');
$ret = $query->select([[$users, 'name', 'addr'], [$orders, 'total']])->join($orders, ['id' => 'user_id'])->where(function ($expr) use($users, $orders) {
    $expr->_and($users, ['id', '=', 2]);
    $expr->_or($users, ['id', '=', 3]);
}, 'AND', function ($expr) use($users, $orders) {
    $expr->_and($users, ['id', '=', 2]);
    $expr->_or($users, ['id', '=', 3]);
})->useMaster()->execute();
/**
 * SELECT
 * `users`.`name`,
 * `users`.`addr`,
 * `orders`.`total`
 * FROM
 * `users`
 * INNER JOIN `orders`
 * ON `users`.`id` = `orders`.`user_id`
 * WHERE
 * (  `users`.`id` = ? OR `users`.`id` = ? )
 * AND
예제 #2
0
 public function getConnection()
 {
     $useSlave = $this->useMasterExplicitly === true ? false : $this->main->useSlave();
     return $this->connectionManager->get($this->main->getLocation(), $useSlave);
 }