図 1: モデル クラスの例を次に示します。
class Games {
public $id = 0;
public $date = null;
public $player1_id = 0;
public $player2_id = 0;
public $score = null;
public function save(){
if(empty($this->id)){
// do INSERT here
}
else{
// do UPDATE here
}
}
}
図 2: クラスの使用例
// Save a new date to an existing game
$game = new Games;
$game->id = $input['id'];
$game->date = $input['date'];
$game->save();
figure2UPDATE
に基づいてクエリを実行すると、、、およびの値が間違ってゼロ/ヌルに上書きされます。したがって、特定のプロパティがfigure2の呼び出しから設定されていないことをクラス内から判断する方法が必要です。これにより、データベース内の特定のフィールドのみを更新するようにクエリを動的に変更できます。それとも私はこれに間違って近づいていますか?player1_id
player2_id
score
UPDATE
注: 単一のarray
プロパティを使用してすべてのフィールドを保持する (および を使用するisset
) ことができることはわかっていますが、これはモデルのポイントを壊しているように感じます。配列が厳密に型指定されている Java などの言語?)。また、更新を実行する前に、ORM が行うと考えていることを実行して、最初のSELECT
クエリを作成できることにも気付きました (しかし、それは非常に非効率的です!)。