0

これが私がやろうとしていることです

{
{
    $sql="SELECT ISO_id,gdp,population,country_name,gold,silver,bronze,total FROM Country ORDER BY (46034/($_GET["x"]*bronze)+($_GET["y]*silver]+(z*gold)*(gdp/population))"; // chosen to order my html table with the number the medals each country won at the olympics
    }
    }

ただし、ステートメント内に $_GET を含める方法がわかりません

4

4 に答える 4

0

最初に get 変数を別の変数にしてから、そこからクリーンアップすることをお勧めします。これは、get 変数を直接 SQL ステートメントに入れると、SQL インジェクションが発生する可能性があるためです。

URLが次のようになっているとします。http://www.mysite.com?ID=4 で ID を取得するには、$_GET[ID] に移動するか、安全を確保するために $id = $_GET[ID] に移動し、ここからいくつかの作業を行って、不正なデータを消去します。 ID。 http://php.net/manual/en/function.mysql-real-escape-string.php これは少しは役に立ちますが、それでも 100% 節約できるわけではありません。

私はこれを理解しようとしていたときのことを覚えていますが、代替案を見たくなかったので、それを機能させたいだけでしたが、アドバイスの言葉は PDO 準備済みステートメントを使用することです。最初は理解するのが少し難しいですが、このガイドは非常に優れており、その方法を非常に簡単に説明しています. PDO は、SQL インジェクションからあなたを守ります。

PDO プリペアド ステートメント チュートリアル

于 2013-05-10T15:05:23.290 に答える
-1

ブレースを追加するだけ

{ { $sql="SELECT ISO_id,gdp,population,country_name,gold,silver,bronze,total FROM Country ORDER BY (46034/({$_GET["x"]}*bronze)+({$_GET["y ]}*silver]+(z*gold)*(gdp/population))"; // オリンピックで各国が獲得したメダルの数を html テーブルに並べるために選択しました } }

于 2013-05-10T14:44:55.340 に答える