phpとか

自分用備忘録なので、自分が分かる程度にしか書いてません。

php db操作関数

みなさんは、phpでDBの検索、更新、削除などしたいときはどんな関数を作っていますか?

いろんなやり方を見たり試したりしたいので、コメントなどでお教えいただきたいです

自分の最近のは↓みたいな感じです。
※実際の関数内のコードは書きません。呼び出しだけ書きます

検索

$param = array(); //プレイスホルダー用
$opt = '';  //文字列格納用
\Func\Db::where($opt, $param, 'カラム名', '値', 'カラム名(仮用)','=','AND')  // → 'WHERE カラム名 = :カラム名(仮用)'
\Func\Db::whereLike($opt, $param, 'カラム名', '値%', 'カラム名(仮用)','OR')  // → 'WHERE カラム名 LIKE :カラム名(仮用)'
\Func\Db::gropuBy($opt, 'カラム名');   // → 'GROUP BY カラム名'
\Func\Db::orderBy($opt, 'カラム名');  // → 'ORDER BY カラム名'
\Func\Db::orderBy($opt, 'カラム名', 'DESC');  // → 'ORDER BY カラム名 DESC'
\Func\Db::limit($opt, '表示行数', '開始インデックス');  // → 'LIMIT 開始インデックス*表示行数, 表示行数'
$data = \Func\Db::select('テーブル名', 'カラム名', $opt, $param);  // → 'select カラム名 from テーブル名 $opt'

実際にはいくつかの引数は省略可能にしてます。'='とかのリレーションなど

言語違いますけど、LINKのメソッド構文がとても直感的でいいな~と思って、関数ぽんぽん呼べばいいようにつくってみました。
これだと、例えば以下のクエリを作りたいときも簡単にできます。

select * from table WHERE table.column <> 2 AND (table.column2 NOT LIKE "%テスト%" OR table.column3 IS NOT NULL)

※$optは単なる文字列なので、以下みたいにできる

\Func\Db::where(引数)
$opt .= '('
\Func\Db::whereLike(引数)
\Func\Db::where(引数)
$opt .= ')'


こんな設計がおすすめなどございましたら是非ご教授いただきたいです。