まえがき
あーなるほど。
追記編集するのが面倒なので
順番に投稿しよう。そうしよう。
…というわけで、
データベースクラスの再開。
色々と試行錯誤を重ねてはいるものの、
意味がわからなくなり、プチパニック…。
とりあえず、発行したいsql文が似ているから
やりやすいだろう…という安易な考えで、
以下の2つの処理をどうにかできないかと。
public function select($テーブル名とか) {
発行したいsql文 = "SELECT * FROM `テーブル名` WHERE `条件`"
}
public function delete($テーブル名とか) {
発行したいsql文 = "DELETE FROM `テーブル名` WHERE `条件`"
}
// 2つのsql文は似ている?!ww
sql文 = select('SELECT * FROM', 'テーブル名', '条件');
sql文 = delete('DELETE FROM', 'テーブル名', '条件');
考察
ここから、別のfunctionに飛ばして
晴れてsql文を実行できる、という形が良いのかな。
ただ、ここでちょっと悩んでいるのが '条件' の部分。
おそらく、配列をうまく利用するんだろうけど。
例えば『会員番号2015番の人を削除』ならば、
sql文 = delete("DELETE FROM 'テーブル名', '会員番号' = '2015'");
という感じで使いたい。ここまではOK。
でも、例えば『スコアが60点以下の人を全削除』なら、
sql文 = delete("DELETE FROM 'テーブル名', 'スコア' <= '60'");
と、なる。もちろん意味は分かる。
ただ、ここで問題…というか悩む。
比較演算子 ( '='とか '<='とか ) が
変わってしまう、ということ。
「なら配列に一緒に入れちゃえ!」ってことですが、
それじゃあ比較しないの場合、どーすんのよ…と。
んー飛ばしたfunctionの先で、
ifやらswitchで分岐させるのか。
つーことは…?
メインとなるfunctionに行くときに、持って行って
ついでにSELECTかDELETEか、も一緒に持っていく、と。
で…良いよね?
public function mainAction($action, $table, $where = array()) {
// 渡ってきた$whereを分解するごにょごにょ
// 最終的に、
// $sql文 = "$action FROM $table WHERE $where"
// みたいな感じにする。
}
public function SELECT($table, $where) {
$this->mainAction('SELECT *', $table, $where);
}
public function DELETE($table, $where) {
$this->mainAction('DELETE', $table, $where);
}
感じで言えば、こんな感じだよね。…たぶん。
とりあえず、続きはあとで考える。
あとがき
問題は、"比較する場合" or "比較しない場合" を
どーすっかねー。