EC-CUBE
Public メソッド | 変数
クラス SC_Query
SC_Queryに対する継承グラフ
Inheritance graph
[凡例]

Public メソッド

 SC_Query ($dsn="", $force_run=false, $new=false)
 getSingletonInstance ($dsn="", $force_run=false, $new=false)
 isError ()
 count ($table, $where="", $arrWhereVal=array())
 select ($col, $table, $where="", $arrWhereVal=array(), $fetchmode=MDB2_FETCHMODE_ASSOC)
 getLastQuery ($disp=true)
 commit ()
 begin ()
 rollback ()
 inTransaction ()
 exec ($str, $arrval=array())
 doCallbackAll ($cbFunc, $sql, $arrval=array(), $fetchmode=MDB2_FETCHMODE_ASSOC)
 getAll ($sql, $arrval=array(), $fetchmode=MDB2_FETCHMODE_ASSOC)
 getSql ($col, $table, $where= '', &$arrWhereVal=null)
 setOption ($str)
 setLimitOffset ($limit, $offset=0)
 setGroupBy ($str)
 andWhere ($str)
 orWhere ($str)
 setWhere ($where= '', $arrWhereVal=array())
 setOrder ($str)
 setLimit ($limit)
 setOffset ($offset)
 insert ($table, $sqlval)
 update ($table, $sqlval, $where="", $arrWhereVal=array(), $arrRawSql=array(), $arrRawSqlVal=array())
 max ($col, $table, $where="", $arrval=array())
 min ($col, $table, $where="", $arrval=array())
 get ($col, $table, $where="", $arrWhereVal=array())
 getOne ($sql, $arrval=array())
 getRow ($col, $table, $where="", $arrWhereVal=array(), $fetchmode=MDB2_FETCHMODE_ASSOC)
 getCol ($col, $table, $where="", $arrWhereVal=array())
 delete ($table, $where="", $arrval=array())
 nextVal ($seq_name)
 currVal ($seq_name)
 setVal ($seq_name, $start)
 query ($n, $arr=array(), $ignore_err=false, $types=null, $result_types=MDB2_PREPARE_RESULT)
 listSequences ()
 listTables ()
 listTableFields ($table)
 listTableIndexes ($table)
 createIndex ($table, $name, $definition)
 dropIndex ($table, $name)
 getTableInfo ($table)
 quote ($val)
 extractOnlyColsOf ($table, $arrParams)
 prepare ($sql, $types=null, $result_types=MDB2_PREPARE_RESULT)
 execute (&$sth, $arrVal=array())
 traceError ($error, $sql="", $arrVal=false)
 getQueryDefsFields ($n, $arr=array(), $ignore_err=false, $types=null, $result_types=MDB2_PREPARE_RESULT)

変数

 $option = ''
 $where = ''
 $arrWhereVal = array()
 $conn
 $groupby = ''
 $order = ''
 $force_run

説明

SQLの構築・実行を行う

TODO エラーハンドリング, ロギング方法を見直す

作者:
LOCKON CO.,LTD.
バージョン:
Id:
SC_Query.php 21284 2011-10-18 03:09:15Z Seasoft

関数

andWhere ( str)

SELECT 文の WHERE 句に付与する AND 条件を設定する.

この関数で設定した値は SC_Query::getSql() で使用されます.

引数:
string$strWHERE 句に付与する AND 条件の文字列
戻り値:
SC_Query 自分自身のインスタンス
begin ( )

トランザクションを開始する.

戻り値:
MDB2_OK 成功した場合は MDB2_OK; 失敗した場合は PEAR::Error オブジェクト
commit ( )

トランザクションをコミットする.

戻り値:
MDB2_OK 成功した場合は MDB2_OK; 失敗した場合は PEAR::Error オブジェクト
count ( table,
where = "",
arrWhereVal = array() 
)

COUNT文を実行する.

引数:
string$tableテーブル名
string$wherewhere句
array$arrWhereValプレースホルダ
戻り値:
integer 件数
createIndex ( table,
name,
definition 
)

テーブルにインデックスを付与する

引数:
string$tableテーブル名
string$nameインデックス名
array$definitionフィールド名など 通常のフィールド指定時は、$definition=array('fields' => array('フィールド名' => array())); MySQLのtext型フィールドを指定する場合は $definition['length'] = 'text_field(NNN)' が必要
currVal ( seq_name)

現在のシーケンス値を取得する.

引数:
string$seq_name取得するシーケンス名
戻り値:
integer 現在のシーケンス値
delete ( table,
where = "",
arrval = array() 
)

レコードの削除

引数:
string$tableテーブル名
string$whereWHERE句
array$arrvalプレースホルダ
戻り値:
doCallbackAll ( cbFunc,
sql,
arrval = array(),
fetchmode = MDB2_FETCHMODE_ASSOC 
)

クエリを実行し、結果行毎にコールバック関数を適用する

引数:
callback$functionコールバック先
string$sqlSQL クエリ
array$arrValプリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。
integer$fetchmode使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。
戻り値:
boolean 結果
dropIndex ( table,
name 
)

テーブルにインデックスを破棄する

引数:
string$tableテーブル名
string$nameインデックス名
exec ( str,
arrval = array() 
)

更新系の SQL を実行する.

この関数は SC_Query::query() のエイリアスです.

FIXME MDB2::exec() の実装であるべき

execute ( &$  sth,
arrVal = array() 
)

プリペアドクエリを実行する.

private

引数:
MDB2_Statement_Commonプリペアドステートメントインスタンス
array$arrValプレースホルダに挿入する配列
戻り値:
MDB2_Result 結果セットのインスタンス
extractOnlyColsOf ( table,
arrParams 
)

パラメーターの連想配列から, テーブルに存在する列のみを取得する.

引数:
string$tableテーブル名
arrayプレースホルダの連想配列
戻り値:
array テーブルに存在する列のみ抽出した連想配列
get ( col,
table,
where = "",
arrWhereVal = array() 
)

SQL を構築して, 特定のカラムの値を取得する.

引数:
string$tableテーブル名
string$colカラム名
string$where付与する WHERE 句
array$arrWhereValプレースホルダに挿入する値
戻り値:
mixed SQL の実行結果
getAll ( sql,
arrval = array(),
fetchmode = MDB2_FETCHMODE_ASSOC 
)

クエリを実行し、全ての行を返す

引数:
string$sqlSQL クエリ
array$arrValプリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。
integer$fetchmode使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。
戻り値:
array データを含む2次元配列。失敗した場合に 0 または DB_Error オブジェクトを返します。
getCol ( col,
table,
where = "",
arrWhereVal = array() 
)

SELECT 文の実行結果を 1列のみ取得する.

引数:
string$tableテーブル名
string$colカラム名
string$where付与する WHERE 句
array$arrWhereValプレースホルダに挿入する値
戻り値:
array SQL の実行結果の配列
getLastQuery ( disp = true)

直前に実行されたSQL文を取得する.

引数:
boolean$disptrueの場合、画面出力を行う.
戻り値:
string SQL文
getOne ( sql,
arrval = array() 
)

SQL を指定して, 特定のカラムの値を取得する.

引数:
string$sql実行する SQL
array$arrvalプレースホルダに挿入する値
戻り値:
mixed SQL の実行結果
getQueryDefsFields ( n,
arr = array(),
ignore_err = false,
types = null,
result_types = MDB2_PREPARE_RESULT 
)

SQLクエリの結果セットのカラム名だけを取得する

引数:
string$n実行する SQL 文
array$arrプレースホルダに挿入する値
booleanエラーが発生しても処理を続行する場合 true
mixed$typesプレースホルダの型指定 デフォルトnull = string
mixed$result_types返値の型指定またはDML実行(MDB2_PREPARE_MANIP)
戻り値:
array 実行結果の配列
getRow ( col,
table,
where = "",
arrWhereVal = array(),
fetchmode = MDB2_FETCHMODE_ASSOC 
)

一行をカラム名をキーとした連想配列として取得

引数:
string$tableテーブル名
string$colカラム名
string$whereWHERE句
array$arrWhereValプレースホルダ配列
integer$fetchmode使用するフェッチモード。デフォルトは MDB2_FETCHMODE_ASSOC。
戻り値:
array array('カラム名' => '値', ...)の連想配列
getSingletonInstance ( dsn = "",
force_run = false,
new = false 
)

シングルトンの SC_Query インスタンスを取得する.

引数:
string$dsnデータソース名
boolean$force_runエラーが発生しても処理を続行する場合 true
boolean$new新規に接続を行うかどうか
戻り値:
SC_Query シングルトンの SC_Query インスタンス
getSql ( col,
table,
where = '',
&$  arrWhereVal = null 
)

構築した SELECT 文を取得する.

クラス変数から WHERE 句を組み立てる場合、$arrWhereVal を経由してプレースホルダもクラス変数のもので上書きする。

引数:
string$colSELECT 文に含めるカラム名
string$tableSELECT 文に含めるテーブル名
string$whereSELECT 文に含める WHERE 句
mixed$arrWhereValプレースホルダ(参照)
戻り値:
string 構築済みの SELECT 文
getTableInfo ( table)

テーブルの詳細情報を取得する。

引数:
string$tableテーブル名
戻り値:
array テーブル情報の配列
insert ( table,
sqlval 
)

INSERT文を実行する.

引数:
string$tableテーブル名
array$sqlvalarray('カラム名' => '値',...)の連想配列
戻り値:

トランザクションが開始されているかチェックする.

戻り値:
boolean トランザクションが開始されている場合 true
isError ( )

エラー判定を行う.

非推奨:
PEAR::isError() を使用して下さい
戻り値:
boolean

シーケンスの一覧を取得する.

戻り値:
array シーケンス名の配列
listTableFields ( table)

テーブルのカラム一覧を取得する.

引数:
string$tableテーブル名
戻り値:
array 指定のテーブルのカラム名の配列
listTableIndexes ( table)

テーブルのインデックス一覧を取得する.

引数:
string$tableテーブル名
戻り値:
array 指定のテーブルのインデックス一覧

テーブル一覧を取得する.

戻り値:
array テーブル名の配列
max ( col,
table,
where = "",
arrval = array() 
)

MAX文を実行する.

引数:
string$tableテーブル名
string$colカラム名
string$where付与する WHERE 句
array$arrvalプレースホルダに挿入する値
戻り値:
integer MAX文の実行結果
min ( col,
table,
where = "",
arrval = array() 
)

MIN文を実行する.

引数:
string$tableテーブル名
string$colカラム名
string$where付与する WHERE 句
array$arrvalプレースホルダに挿入する値
戻り値:
integer MIN文の実行結果
nextVal ( seq_name)

次のシーケンス値を取得する.

引数:
string$seq_name取得するシーケンス名
integer次のシーケンス値
orWhere ( str)

SELECT 文の WHERE 句に付与する OR 条件を設定する.

この関数で設定した値は SC_Query::getSql() で使用されます.

引数:
string$strWHERE 句に付与する OR 条件の文字列
戻り値:
SC_Query 自分自身のインスタンス
prepare ( sql,
types = null,
result_types = MDB2_PREPARE_RESULT 
)

プリペアドステートメントを構築する.

private

引数:
string$sqlプリペアドステートメントを構築する SQL
mixed$typesプレースホルダの型指定 デフォルト null
mixed$result_types返値の型指定またはDML実行(MDB2_PREPARE_MANIP)、nullは指定無し
戻り値:
MDB2_Statement_Common プリペアドステートメントインスタンス
query ( n,
arr = array(),
ignore_err = false,
types = null,
result_types = MDB2_PREPARE_RESULT 
)

SQL を実行する.

FIXME $ignore_errが無視されるようになっているが互換性として問題が無いか確認が必要

引数:
string$n実行する SQL 文
array$arrプレースホルダに挿入する値
boolean$ignore_errMDB2切替で無効化されている (エラーが発生しても処理を続行する場合 true)
mixed$typesプレースホルダの型指定 デフォルトnull = string
mixed$result_types返値の型指定またはDML実行(MDB2_PREPARE_MANIP)
戻り値:
array SQL の実行結果の配列
quote ( val)

値を適切にクォートする.

TODO MDB2 に対応するための暫定的な措置. プレースホルダが使用できない実装があるため. 本来であれば, MDB2::prepare() を適切に使用するべき

参照:
MDB2::quote()
引数:
string$valクォートを行う文字列
戻り値:
string クォートされた文字列
rollback ( )

トランザクションをロールバックする.

戻り値:
MDB2_OK 成功した場合は MDB2_OK; 失敗した場合は PEAR::Error オブジェクト
SC_Query ( dsn = "",
force_run = false,
new = false 
)

コンストラクタ.

引数:
string$dsnデータソース名
boolean$force_runエラーが発生しても処理を続行する場合 true
boolean$new新規に接続を行うかどうか
select ( col,
table,
where = "",
arrWhereVal = array(),
fetchmode = MDB2_FETCHMODE_ASSOC 
)

SELECT文を実行する.

引数:
string$colカラム名. 複数カラムの場合はカンマ区切りで書く
string$tableテーブル名
string$whereWHERE句
array$arrWhereValプレースホルダ
integer$fetchmode使用するフェッチモード。デフォルトは MDB2_FETCHMODE_ASSOC。
戻り値:
array|null
setGroupBy ( str)

SELECT 文に付与する GROUP BY 句を設定する.

この関数で設定した値は SC_Query::getSql() で使用されます.

引数:
string$strGROUP BY 句に付与する文字列
戻り値:
SC_Query 自分自身のインスタンス
setLimit ( limit)

SELECT 文に付与する LIMIT 句を設定する.

この関数で設定した値は SC_Query::getSql() で使用されます.

引数:
integer$limitLIMIT 句に設定する値
戻り値:
SC_Query 自分自身のインスタンス
setLimitOffset ( limit,
offset = 0 
)

SELECT 文に付与する LIMIT, OFFSET 句を設定する.

この関数で設定した値は SC_Query::getSql() で使用されます. TODO MDB2::setLimit() を使用する

引数:
integer$limitLIMIT 句に付与する値
integer$offsetOFFSET 句に付与する値
戻り値:
SC_Query 自分自身のインスタンス
setOffset ( offset)

SELECT 文に付与する OFFSET 句を設定する.

この関数で設定した値は SC_Query::getSql() で使用されます.

引数:
integer$offsetLIMIT 句に設定する値
戻り値:
SC_Query 自分自身のインスタンス
setOption ( str)

SELECT 文の末尾に付与する SQL を設定する.

この関数で設定した値は SC_Query::getSql() で使用されます.

引数:
string$str付与する SQL 文
戻り値:
SC_Query 自分自身のインスタンス
setOrder ( str)

SELECT 文に付与する ORDER BY 句を設定する.

この関数で設定した値は SC_Query::getSql() で使用されます.

引数:
string$strORDER BY 句に付与する文字列
戻り値:
SC_Query 自分自身のインスタンス
setVal ( seq_name,
start 
)

シーケンス値を設定する.

引数:
string$seq_nameシーケンス名
integer$start設定するシーケンス値
戻り値:
MDB2_OK
setWhere ( where = '',
arrWhereVal = array() 
)

SELECT 文に付与する WHERE 句を設定する.

この関数で設定した値は SC_Query::getSql() で使用されます.

引数:
string$whereWHERE 句に付与する文字列
mixed$arrWhereValプレースホルダ
戻り値:
SC_Query 自分自身のインスタンス
traceError ( error,
sql = "",
arrVal = false 
)

エラーの内容をトレースする.

private

引数:
PEAR::Error$error PEAR::Error インスタンス
string$sqlエラーの発生した SQL 文
array$arrValプレースホルダ
戻り値:
string トレースしたエラー文字列
update ( table,
sqlval,
where = "",
arrWhereVal = array(),
arrRawSql = array(),
arrRawSqlVal = array() 
)

UPDATE文を実行する.

引数:
string$tableテーブル名
array$sqlvalarray('カラム名' => '値',...)の連想配列
string$whereWHERE句
array$arrWhereValWHERE句用のプレースホルダ配列 (従来は追加カラム用も兼ねていた)
array$arrRawSql追加カラム
array$arrRawSqlVal追加カラム用のプレースホルダ配列
戻り値:

このクラスの説明は次のファイルから生成されました:
 全て データ構造 ネームスペース 関数 変数