PHP TOP】【PGSQL TOP
とりあえずSQLくらい楽にできるようにしよう1.
SQLを動的に作成するのって結構手間だからある程度手助けしてもらえるようにしてみよう.

大まかな考え方の順序
SQLで代表的な構文は以下の4つ.
 
  1. SELECT
  2. INSERT
  3. UPDATE
  4. DELETE
 
ということで,それらを簡易作成できるようにしていきます.
処理の手順としては,
 
  1. パラメータの指定(add関数)
     :各句にパラメータを追加していきます.
  2. 指定されたパラメータからSQLを作成(make関数)
     :各句に保存されたパラメータをつなぎ合わせてSQL文を完成させます.
 
という2つの手順をとります.
 
まずSELECT構文からパラメータの指定部分を作ってみます.
 
で,SELECTの構文は・・
 
SELECT フィールド名 FROM テーブル名 WHERE 条件 ORDER BY フィールド名
 ※Group By句はパスしました.
 
それぞれの引数の書式は
  • SELECT句
      : フィールド名 (P1[,P2,...])
  • FROM句
      : テーブル名(P1[as P]) ※テーブルの結合は面倒なので考えないことにしました.
  • WHERE句
      : 条件 P1=V1 [[and|or] P2=V2]
  • ORDER BY句
      : フィールド名 P1[DESC]
ということで,4つの引数を追加できるようにします.
       ・
       ・
       ・
出来上がったソースです.
きちんとした説明は・・やっぱり挫折です^^;

この関数で何が楽になるのか?と聞かれると困りますが・・.
Where句とかで今までパラメータあったっけか?という心配をしなくていいのと自分で句同士をつなぎ合わせなくてよくなることでしょうか・・.

スクリプト動かしてみたら動いたみたい.よかったよかった.

利用した関数
なし

作成した変数
$query_str 作成したクエリ保存用
$query_select SELECT句保存用
$query_from FROM句保存用
$query_where WHERE句保存用
$query_oderby ORDERBY句保存用
$query_table INSERT構文などでTABLE名保存に利用します
$query_field INSERT構文でフィールド名を保存するために利用します
$query_value NSERT構文などで入力値を保存するために利用します

作成した関数
clear_querys() 変数を初期化するための関数.
変数の初期化は複数の関数で行うため関数としてまとめます.
前回作成したコンストラクタにも追加します.
 
make( $_mode = "select") SQLを作成するための関数.
add関数で追加されたものをつなぎ合わせてSQLを完成させます.通常は直接使わずにexec関数から呼び出します.
 
exec( $_mode = "select") クエリ実行関数です.
$_modeに与えられた構文のSQLをmake関数を使って作成し,そのSQLを実行します.
SQL実行には基礎クラスで作成したexecute関数を利用します.紛らわしいかもしれませんがmake関数などをかませる簡易版ということでexec関数と名前付けました.
 
_add(&$_pstr,$_note,$_mode) add関数の補助的な関数です.
同じ処理が続いたのでソースをすっきりさせるために別関数にしました.
 
add( $_note = "",$_type = "select" , $_mode = "and") SQL文字列追加用関数です.
第一引数はSQLパラメータ.
第二引数は追加する句.
第三引数はパラメータの区切り文字.
 
第三引数に指定できるのは"and | or | , | new"の4種類.”new”をしていた場合それまでに代入したパラメータを破棄するようになっています.

目次】【第1回】【第2回】【第3回】【第4回】【第5回

(c)2002-2003 by misky