私は、ユーザがデータベースにユーザを追加、編集、削除できるアプリケーションを構築しています。PHPでテーブルを動的に更新する方法
は、私は「表示のユーザーの(結合されたテーブルを返すSELECT文を)やったと「ユーザーの追加」を(記入するユーザーのためのフォームを返し、そしてもちろんの検証後、データベースへの挿入)
しかし、私を'ユーザーの編集'に問題があります。
マイ編集フォームは、追加フォームと同じですが、テキストボックスの値はデータベースの値で埋められます。
提出する際に、ユーザの入力やデータベースの値間のミスマッチのためのロジックをチェックし(だから我々は我々が実際にデータベースに更新しているか知っている)
だから私はそのすべての値の配列で終わります
$values_to_update = array (
"telephone" => "07788991010"
"email_address" => "[email protected]"
);
この配列の値は動的であり、各フィールドを動的に更新する方法が必要です。
また、フィールドは異なるテーブルに由来する場合もあります。
私はしたくない:
if (isset ($values_to_update[ "telephone" ]))
$database->update("UPDATE users SET telephone = '{$values_to_update[ "telephone" ]}' WHERE user_id = $user_id");
else if (isset ($values_to_update[ "email_address" ]))
$database->update("UPDATE authentication SET email_address = '{$values_to_update[ "email_address" ]}' WHERE user_id = $user_id");
else if (/* ... */)
// etc etc etc
誰が私はこれを行うことができ、より良い方法のいずれかのアイデアを持っていますか?
私はおそらく、1つのHUGEアップデートステートメントを使用できると思っていましたが、データをフェッチする同じselectステートメントが使用されていました。しかし、私はこれがどのように機能するのかわかりません。
動的クエリ生成のためのフィールド配列をアプリケーションに格納するのが標準的な方法ですか?
すばらしいSQL注入穴があります。誰かがトラックを運転した場合、残念です。 –
それはコピーされたコードではありません。そのコード私はすぐにポイントを取得するために書きました。ありがとうございました –