2017-11-25 11 views
0

私は小さなアプリを持っています。私はユーザーのアクセス後に、私のアプリはログオンデータベースを保存します。このように:最新のデータをmySQLに挿入

  uid username2  timelogin 
      -------------------- 
      123 ALex  2017-11-25 17:22:00 
      134 Anna  2017-11-25 17:25:00 

問題が発生しました。私のアプリは、ユーザーのすべてのタイムロジンを保存します。このように:

 uid username2  timelogin 
     -------------------- 
     123 ALex  2017-11-25 17:22:00 
     134 Anna  2017-11-25 17:25:00 
     123 Alex  2017-11-25 17:26:00 
     134 Anna  2017-11-25 17:27:00  

最後に保存したかったのは、各ユーザー名の最後の時間だけです。このように:

 uid username2  timelogin 
     -------------------- 
     123 Alex  2017-11-25 17:26:00 
     134 Anna  2017-11-25 17:27:00 

私は修正してください。これは私のMYSQLクエリです。

$sql = "INSERT INTO log (uid, username2, timelogin) 
    VALUES ('$id[1]', '$user[2]', FROM_UNIXTIME($t))"; 

    if (mysqli_query($conn, $sql)) { 
    echo "New record created successfully"; 
    } else { 
    echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
    } 
+0

この – Rahul

+0

はい、しかし、すべてのユーザーのタイムロジンを保存します。私はMySQLで最新のタイムロジンを更新します。Ex '123 Alex 2017-11-25 17:22:00'を' 123 ALex 2017-11-25 17:26 :00' – Doublelift

+0

重複キーを挿入しないでください – Strawberry

答えて

1

テーブル内の古い行がPRIMARY KEYまたはUNIQUEインデックスの新しい行と同じ値を持っている場合は、新しい行が挿入される前に、古い行が削除されることを除いて、正確にINSERTのような作品をREPLACE 。項13.2.5。「INSERT構文」を参照してください。 REPLACEは、SQL標準のMySQL拡張です。

uidの場合、ユーザー名はprimay keyです。

ログ(UID、USERNAME2、timelogin)INTO REPLACE VALUES( '$番号[1]'、 '$ユーザー[2]'、FROM_UNIXTIME($ tの))」私は間違って何も表示されません

関連する問題