毎週メンバーの更新を自動化するための編集可能なデータベースを作成しました。各メンバーが毎週更新する9つの値があり、これらはセカンダリPHPへの$ _POSTによって制御されます。私はisset()を使ってmysqlクエリの実行を制御することができます
このPHPから、post値はphp varとして設定され、次にSQL dbを更新するために使用されます。
mysql_select_db("web_footy1") or die(mysql_error());
// The SQL statement is built
$strSQL = "UPDATE Round_6 SET ";
$strSQL = $strSQL . "Game1= '$Game1', ";
$strSQL = $strSQL . "Game2= '$Game2', ";
$strSQL = $strSQL . "Game3= '$Game3', ";
$strSQL = $strSQL . "Game4= '$Game4', ";
$strSQL = $strSQL . "Game5= '$Game5', ";
$strSQL = $strSQL . "Game6= '$Game6', ";
$strSQL = $strSQL . "Game7= '$Game7', ";
$strSQL = $strSQL . "Game8= '$Game8', ";
$strSQL = $strSQL . "Game9= '$Game9' ";
$strSQL = $strSQL . "WHERE Member = '$Member' ";
// The SQL statement is executed
mysql_query($strSQL) or die(mysql_error()) ;
はい、私はこれはSQLインジェクションの対象と認識しています、それは、ATM
を待つことができるセキュリティので、問題はすべての値が同時に更新され、1を更新することにあるプライベートサイトですすべてを入力する必要があります。それ以外の場合は空の値に置き換えられます。
私の質問は2倍です。 A)各変数を別々に制御できる最もきれいな方法は何ですか? B)実行するクエリを制御するためにisset($ GameX)を使用する方法はありますか?
例:
IF (isset($Game1)) {UPDATE Round6 SET Game1='$Game1' WHERE Member='$Member'} ;
、心に留めておく3週間前、私はコーディングについて何も知りませんでしたし、その時には、HTML、PHPとSQLでcoursedクラッシュを持ってください...乾杯
ゲームデータを配列に格納する方が良いということを忘れてしまいました。そのようにすれば、変数変数( '$$'構文)よりもはるかに良く、より洗練された 'array_key_exists'を使用することができます – Ben
これは、出力の面でかなり好きなようです... Yiur suqqestion on SQL injection修正はPDOに置くことです、私はまだ私の周りを包み込むことを試みています...上記の例をpdoで表示できますか...私はチェックしてmysqlサーバはv 5.5+です –
私の編集を参照してください - PDOの例に追加 – Ben