忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2017/03/27 19:40 |
AuraPHP 1.0.0 Aura.Sql その2
Aura.Sqlで前回使わなかったメソッドなどを適当に使ってみます。
<?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


2013/05/08 23:59 | Comments(0) | PHP

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<PHP5.4.7 セッションハンドラ | HOME | AuraPHP 1.0.0 Aura.Sql>>
忍者ブログ[PR]