2016-10-20 6 views
0

メンバーシップスクリプトを作成しています。私の人生にとって、私のクエリで何が間違っているのか理解できません。私は目の2番目のセットが必要だと思う..元々私はちょうど送っていたUPDATEクエリは、今までに設定されたすべてのTIMEDATE列を更新します。


$ sqlquery2 = "UPDATEユーザーSET lastvisit = now()WHERE id = '"。 $ id。 "'";
しかし、joined_date列も更新していました。だから私はこれを試して、それをさらに壊した。

コードの抜粋:

  //These variables are pulled from prior query 

      $id = $row['id']; 
      $hashed_password = $row['password']; 
      $username = $row['username']; 
      $joined = $row['join_date']; 
      $salt = $row['salt']; 
      $email = $row['email']; 

      //compare password pulled from database 
      if(password_verify($password,$hashed_password)){ 
       $sqlquery2 = "UPDATE users SET lastvisit = now(), join_date = ".$joined." WHERE id = '" . $id ."'"; 

// $参加は、あなたのjoined_dateは、TIMESTAMP列であるかどうかを確認してください2016年10月19日17時24分08秒

+0

'joined_date column'がまだ更新されているのに、' join_date = "。$ joined"という理由で困惑していますか? – Irvin

+0

これは、$ sqlquery2 = "UPDATE users SET lastvisit = now()WHERE id = '"のときに、join dateがlastloginと同じに更新されたときに変更したものです。 $ id。 "'"; – JTsToolbox

+1

'$ joined'は文字列です。クエリは失敗します。あなたはそれを実行していますか? – chris85

答えて

0

に等しいです。そうであれば、次のことが役立ちます。 http://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html

+0

'TIMESTAMP'と' DATETIME'は現在動作しますが、 'TIMESTAMP'には[制限](https://en.wikipedia.org/wiki/Year_2038_problem)があるので、DATETIMEが優先されます – Xorifelse

+0

タイムスタンプの列が指定されている場合ON UPDATE CURRENT_TIMESTAMPを使用して、テーブルで更新したフィールドに関係なく列は現在の時刻に自動的に設定されます。そのような場合は、テーブル定義を確認してください。そうでなければ、プログラム内の別の場所に更新する必要があります。それ以外の場合は自動的に変更されるべきではありません。 – Aruna

+0

ありがとう、これはまさにそれだったので、元のクエリに戻って、完全に動作しています。ありがとう!!! – JTsToolbox

関連する問題