\BEAR_Query

クエリークラス

select, insert, update, deleteのクエリーツールです。
selectにはHTMLリンクも伴うDBページング機能、他の文にはSQL生成の機能が付加されています。
MDB2を使用していますが、クライアントはMDB2の実装に依存しないでBEAR_Queryのインターフェイスに依存できます。

Example 1. セレクトクエリー

$config = array('db'=>$db, 'table'=>$table, 'pager'=>false, 'pager_option'=> $pagerOption); $query = BEAR_Dependency('BEAR_Query, $config); // 直接select $sql = "SELECT FROM users WHERE id = 1"; $result = $query->select($sql); // プリペアードステートメント (quote自動) $sql = "SELECT FROM users WHERE id = :id"; $params = array('id'=>1); $result = $query->select($sql, $params); // insert $values = array('name'=>'bear', 'age'=>10); $result = $query->insert($values); // update $values = array('name'=>'bear', 'age'=>10); $where = 'id = '. $query->quote($id, 'integer'); $result = $query->$update($values, $where); // テーブル指定update $table = 'another_user'; $result = $query->$update($values, $where, $table);

MDB2結果コード

('MDB2_OK',                      true);
('MDB2_ERROR',                     -1);
('MDB2_ERROR_SYNTAX',              -2);
('MDB2_ERROR_CONSTRAINT',          -3);
('MDB2_ERROR_NOT_FOUND',           -4);
('MDB2_ERROR_ALREADY_EXISTS',      -5);
('MDB2_ERROR_UNSUPPORTED',         -6);
('MDB2_ERROR_MISMATCH',            -7);
('MDB2_ERROR_INVALID',             -8);
('MDB2_ERROR_NOT_CAPABLE',         -9);
('MDB2_ERROR_TRUNCATED',          -10);
('MDB2_ERROR_INVALID_NUMBER',     -11);
('MDB2_ERROR_INVALID_DATE',       -12);
('MDB2_ERROR_DIVZERO',            -13);
('MDB2_ERROR_NODBSELECTED',       -14);
('MDB2_ERROR_CANNOT_CREATE',      -15);
('MDB2_ERROR_CANNOT_DELETE',      -16);
('MDB2_ERROR_CANNOT_DROP',        -17);
('MDB2_ERROR_NOSUCHTABLE',        -18);
('MDB2_ERROR_NOSUCHFIELD',        -19);
('MDB2_ERROR_NEED_MORE_DATA',     -20);
('MDB2_ERROR_NOT_LOCKED',         -21);
('MDB2_ERROR_VALUE_COUNT_ON_ROW', -22);
('MDB2_ERROR_INVALID_DSN',        -23);
('MDB2_ERROR_CONNECT_FAILED',     -24);
('MDB2_ERROR_EXTENSION_NOT_FOUND',-25);
('MDB2_ERROR_NOSUCHDB',           -26);
('MDB2_ERROR_ACCESS_VIOLATION',   -27);
('MDB2_ERROR_CANNOT_REPLACE',     -28);
('MDB2_ERROR_CONSTRAINT_NOT_NULL',-29);
('MDB2_ERROR_DEADLOCK',           -30);
('MDB2_ERROR_CANNOT_ALTER',       -31);
('MDB2_ERROR_MANAGER',            -32);
('MDB2_ERROR_MANAGER_PARSE',      -33);
('MDB2_ERROR_LOADMODULE',         -34);
('MDB2_ERROR_INSUFFICIENT_DATA',  -35);

DATAタイプ

'text':
'clob':
'blob':
'integer':
'boolean':
'date':
'time':
'timestamp':
'float':
'decimal':

Summary

Methods
Properties
Constants
__construct()
onInject()
setConfig()
getConfig()
setService()
select()
insert()
update()
delete()
quote()
isError()
No public properties found
No constants found
_exception()
_sort()
_countQuery()
$_config
N/A
_selectRow()
_rewriteCountQuery()
No private properties found
N/A

Properties

$_config

$_config : array

Class config

Type

array

Methods

__construct()

__construct(array  $config) 

Constructor

設定を_configプロパティに代入します。

Parameters

array $config

ユーザー設定値

onInject()

onInject() : void

Inject

設定にしたがってサービスをインジェクトします。

setConfig()

setConfig(mixed  $config, mixed  $values = null) : self

Set config

Parameters

mixed $config

(string) 設定キー | (array) 設定配列

mixed $values

(string) $configの時の設定値

Returns

self

getConfig()

getConfig(string  $key = null) : mixed

Get config

Parameters

string $key

設定キー、指定なければ全ての設定を取得

Returns

mixed

setService()

setService(string  $name, mixed  $service) : void

Set service

Parameters

string $name

サービスキー

mixed $service

サービス

select()

select(string  $query, array  $params = array(), array  $values = null, string  $id = 'id') : \BEAR_Ro

セレクト

通常のselect文の他にDB結果の一部だけをSELECTする機能と、HTMLページングの機能が合わさった
メソッドです。getAll()メソッドの引数に加えて一画面に表示するデータ数を
引数に指示するとページング(スライス)されたデータ結果と
エージェントに合わせたリンクHTML文字列が返ります。
$valuesが配列 $values)>ならWHERE $key1 = $id1 AND $key2 = $id2 ..と条件を作ってselectします。
リソース内で受け取った$valuesを条件にSELETするときに使います。

$paramsが空だと通常のSQL、連想配列が入っていると$queryをpreparedステートメート文として期待して実行します。

Parameters

string $query

SQL

array $params

プリペアードステートメントにする場合にバインドする変数

array $values

where条件配列

string $id

Returns

\BEAR_Ro

insert()

insert(array  $values, null  $table = null, null  $types = null) : mixed|\mixeds

インサート

Parameters

array $values
null $table
null $types

Returns

mixed|\mixeds

update()

update(array  $values, string  $where, null  $table = null, null  $types = null) : mixed

アップデート

Parameters

array $values
string $where
null $table
null $types

Returns

mixed

delete()

delete(  $where, null  $table = null) : mixed

デリート

Parameters

$where
null $table

Returns

mixed

quote()

quote(  $value,   $type) : mixed

クオート

Parameters

$value
$type

Returns

mixed

isError()

isError(mixed  $result) : mixed

エラー?

Parameters

mixed $result

DB結果

Returns

mixed

_exception()

_exception(string  $msg, array  $config = array()) : \BEAR_Exception

例外の作成

Parameters

string $msg

例外メッセージ

array $config

例外config

Returns

\BEAR_Exception

_sort()

_sort(string  $sql) : string

ソート

クエリーからsort文を作成します。

exmaple 1.
?_sort=id

ORDER BY ID

example 2.
?_sort=id,-flg

ORDER BY ID, FLG DESC

Parameters

string $sql

DWL

Returns

string

_countQuery()

_countQuery(string  $query, array  $params = array()) : integer

カウントクエリー

Parameters

string $query
array $params

Returns

integer

_selectRow()

_selectRow(  $db, string  $query, array  $params, array  $values, mixed  $id) : mixed

Rowセレクト

$values配列に$idをキーにした変数があれば(単数、複数)それを=の条件としてwhereを作成してクエリーをRow取得する

example.

$values = array('id'=>5)
$id = 'id';

だと"WHERE id = '5'"のクエリーが生成される

$values = array('id'=>5, 'delete_flg'=>1)
$id = array('id', 'delete_flg');

だと"WHERE id = '5' AND delete_flg = '1'"のクエリーが生成される

                                    

Parameters

$db
string $query
array $params
array $values
mixed $id

Returns

mixed

_rewriteCountQuery()

_rewriteCountQuery(string  $query) : string

カウントクエリーを生成する

SQL文から"SELECT COUNT(*)" を付加したカウントクエリーを生成して返します。
COUNT文を含まないSQLからセレクト結果の個数を知るためCOUNTのクエリーを使用するのに用います
DBページャーで内部的にも使用されています。

Example 1. SQLからCOUNT()を取得

$count_query = $this->getCountSQL($query)); $total_items = $this->getOne($count_query, $params);

Parameters

string $query

クエリー

Returns

string —

書き換えられたクエリー | false(失敗