0

ログインのテーブルがあり、テーブルには userId と loginDate の 2 つの属性があります

ユーザーが初めてログインする場合、loginDate 値が null であることを意味し、現在の日付を挿入したいだけで、ユーザーが既にログインしている場合は日付を更新します。どうすればいいですか?これまでのところ、私は今これを持っています

  //..
  $userId = $_POST['the_user'];
  $query = "SELECT * 
            FROM login";
            $result = mysqli_query($db, $query); //we make the query

     if(empty($row[1]){  // THIS IS WHERE I INSERT A DATE IF THIS IS THE FIRST
                             // TIME A USER LOGS IN 
        $query = "INSERT INTO login(userId,loginDate)
                    VALUES ('$userId',CURDATE())";
        $result = mysqli_query($db, $query); //we make the query
      }
          else if{ // THIS IS WHERE I WOULD DO MY UPDATE 



          }
4

3 に答える 3

1

このようなもの...

INSERT INTO login (userId, loginDate) VALUES ('$userId', CURDATE())
  ON DUPLICATE KEY UPDATE loginDate = CURDATE()

ドキュメンテーション

また、SQLインジェクションを防ぐために、バインドされたパラメーターを使用する必要があります。

于 2013-03-22T19:03:33.713 に答える
0

このようなもの?今までやってきたことを変えずに

else {
    mysqli_query($db, "update login set loginDate = curdate() where userId = '$userId'");
}

ところで、SQL インジェクション攻撃から身を守るには、文字列内の変数補間の代わりに準備済みステートメントを使用する必要があります

于 2013-03-22T19:05:18.527 に答える