-1

タイプのデータと呼ばれるデータベース列に $date 変数を格納する際に問題があります varchar(50)

これは日付変数のコードです

$date = date("Y-m-d");
echo $date;

これはデータベースに保存するコードです(日付が同じであることに注意してください)

私のコードの問題は何ですか

 $sql="INSERT INTO 
    Students(FirstName, LastName,gender,Major,Favorite_courses,GPA,date)
 VALUES 
    ('$_POST[firstname]','$_POST[lastname]','$_POST[sex]','$_POST[major]',
     '$_POST[favorite]','$_POST[GPA]','$date')";
4

4 に答える 4

4

列タイプを に変更し、値としてDATE使用SYSDATEして、SQL サーバーの現在の日付/時刻を入力します。

また、SQL インジェクションについてもお読みください。

于 2013-06-03T20:04:19.347 に答える
2

技術的にはコードは機能するはずですが、実際には間違いなく失敗します。

まず第一に、POST データを直接データベースに入れるべきではありません。そのデータの内容によっては、少なくとも SQL ステートメントが壊れます。また、誰かが SQL を POST 変数に入力した場合、データベースが破壊される可能性もあります。

そのようにしないでください。データベースに挿入する前に、外界からのデータをサニタイズする必要があります。これを行う PHP データベース クラスがいくつかあります。私はPDOが好きです。

また、$_POST[favorite] の代わりに $_POST['favorite'] を使用してより適切な PHP を記述します。コードのどこかでこれを行うとどうなりますかdefine('favorite', 'foobar')?

何が起こるかというと、あなたのコードは $_POST['favorite'] の代わりに $_POST['foobar'] を探します。

実際に何かを展開する前に、PHP と SQL の知識に取り組む必要があります。そうしないと、問題が発生することになります。しかし、プラグインを続けてください、あなたはそれを手に入れるでしょう.

于 2013-06-03T20:13:31.597 に答える
-1

PHP クラス Date を使用して、彼の format 関数を使用できます

于 2013-06-03T20:38:55.377 に答える