Aura.Sqlで前回使わなかったメソッドなどを適当に使ってみます。
SELECT文が全くの意味不明ですが、あくまでSQLの例ということで。
SQL用には、他にjoin()もあり、大抵のSQLは書けるようになっています。
便利なのがsetPaging()とpage()で、ページング用のLIMIT句を簡単に作ってくれます。
setPaging()で1ページあたりの件数、page()で表示するページを指定です。
しかし何故わざわざquote、quoteIntoなんてメソッドを実装しているのかは謎。
理由がないかぎり使わないようにしましょう。
AuraPHPの記事
<?php
require_once('path/to/channel/vendor/autoload.php');
// Aura.Sql
$auraSql = new Aura\Sql\ConnectionFactory();
$connection = $auraSql->newInstance('mysql', 'host=localhost;dbname=test;charset=utf8;', 'testuser', 'testpass');
// 接続する
$connection->connect(); // 失敗したらPDOException
// PDOインスタンスを直接得る
$pdo = $connection->getPdo();
// DSN
$dsn = $connection->getDsnString(); // 'mysql:host=localhost;dbname=test;charset=utf8;'
// クォート ただしprepareを使用すべき
$str = $connection->quote("1' OR 1 ");
$str = $connection->quoteInto("foo = ? AND bar = ? ", array("1' OR 1 ", "1' OR 1 "));
// テーブル一覧を取得
$tables = $connection->fetchTableList();
// カラム一覧を取得
$columns = $connection->fetchTableCols('hoge');
// SELECT
$select = $connection->newSelect(); // SELECT
$select->distinct(true); // distinct
$select->cols(['*']); // *
$select->from('hoge'); // FROM hoge
$select->where('id = :id'); // WHERE id = :id
$select->where('id = :id2'); // AND id = :id2
$select->orWhere('id = :id3'); // OR id = :id3
$select->groupBy(array('id')); // GROUP BY id
$select->having('id = :id4'); // HAVING id = :id4
$select->orderBy(array('id DESC')); // ORDER BY id DESC
//$select->limit(1); // LIMIT 1
//$select->offset(0); // OFFSET 1
$select->setPaging(5)->page(3); // LIMIT 5 OFFSET 10
$bind = array('id'=>1, 'id2'=>1, 'id3'=>1, 'id4'=>1);
$data = $connection->fetchAll($select, $bind);
SELECT文が全くの意味不明ですが、あくまでSQLの例ということで。
SQL用には、他にjoin()もあり、大抵のSQLは書けるようになっています。
便利なのがsetPaging()とpage()で、ページング用のLIMIT句を簡単に作ってくれます。
setPaging()で1ページあたりの件数、page()で表示するページを指定です。
しかし何故わざわざquote、quoteIntoなんてメソッドを実装しているのかは謎。
理由がないかぎり使わないようにしましょう。
AuraPHPの記事
PR