2016-10-25 8 views
0

作成したいスクリプトを簡単に書く方法があるのだろうかと思います。

データベースのすべてのフィールドを、システム設定のフォームにあるフィールドに更新しようとしています。

私のデータベースの構造は次のとおりです。 ID settingName 値

私は

$opt->update_option('optionName', 'value'); 

の呼び出しに私のためのデータベースを更新する機能を持ってはどのようなPOST中に指定する方法はあります値に対応するoptionNameは、foreachループで実行できるので、すべてのフォーム値に対して手動でupdate_optionを書く必要はありません。

すなわちフォームがポストされたとき、それは何か送信します

とデータベースの更新を実行しますので、私は、その後の区切り文字で分割するforループを実行することができますStackOverflowの: サイト名を?

ありがとうございました!

foreach($_POST as $option => $value) { 
    $opt->update_option($option, $value); 
} 

しかし、あなたは、あなたが、私は配列を使用しないものは別にしたい値を維持するために:その後、

<input type="text" name="sitename" value="Stackoverflow"> 

とを:

+1

フレームワークを使用していますか?もしそうなら、どちらですか? – RiggsFolly

+0

HTMLフォームも共有します。 –

+0

DataBase接続クラスを構築します。このクラスには、指定された配列をとり、配列のキーを列名として使用し、配列の値を列値として使用するメソッドがあります。あなたはエスケープ文字列(少なくともカラム名)のようなことに注意する必要がありますが、あなたはあなたが作業しているすべてのウェブサイトでこのクラスを使用することができます(新しいクラスのデータベースと同じケータリングを使用します)。 – Martin

答えて

1

あなたはこのような何かを行うことができます:

<input type="text" name="options[sitename]" value="Stackoverflow"> 

そして:

foreach($_POST['options'] as $option => $value) { 
    $opt->update_option($option, $value); 
} 

これは、配列を受け入れる関数である可能性があります。それにかかわらず、あなたのupdate_option()関数では、チェックとエスケープを行う必要があります。データをクエリにダンプするだけではありません。 How can I prevent SQL injection in PHP?

+0

これはハッカーに開放されているため、彼がデータベースマネージャを作成していることを祈っています。 – Phiter

+0

@PhiterFernandes:はい、それを 'update_option()'で世話してください。 – AbraCadaver

+0

@PhiterFernandesさらにこれに進むことができますか?それはどんな扉を開いたでしょうか?私はあなたがSQLインジェクションを意味すると思いますか? –

関連する問題