您好我有一個更新用戶在我的數據庫中最後一次登錄時間的問題,如果我將它設置爲更新不同的列它完美的工作,但它只是不工作,當我嘗試更新特定列「lastlogin」。日期時間字段將不會在MySQL數據庫中更新
我的代碼:
@mysql_query("UPDATE my_users SET lastlogin=NOW() WHERE id=".$_SESSION["id"]);
My DB column:
column name: lastlogin
type: datetime
Null: No
Default: 0000-00-00 00:00:00
任何問題的方式列在DB設置?就像我上面提到的,如果我要告訴它將NOW()放在另一列中,它可以正常工作。
我建議你在'mysql_query'之前的符號處刪除'@'。如果出現錯誤,我想我們想知道這件事。另一項建議是:在調用'mysql_query'之前,將動態生成的SQL語句分配給變量,然後在調用'mysql_query'之前將echo或vardump變量用於調試,我們可以將該SQL語句帶到另一個客戶端進行測試。那麼'id'列的數據類型是什麼?是'$ _SESSION [「id」]整數的值嗎?不推薦使用mysql_'接口函數,並刪除PHP 7.使用PDO或mysqli並準備帶有綁定佔位符的語句。 – spencer7593
@ spencer7593感謝您的建議。我知道查詢正在工作,因爲如果我將「lastlogin」更改爲任何其他數據庫字段,它會將數據插入到數據庫中。問題是當試圖插入「lastlogin」列時。 –
排除了一些可能性......在表中定義了一個'BEFORE UPDATE'觸發器,它將一個值賦給'lastlogin',沒有'AFTER UPDATE'引發錯誤並回滾事務。我建議你嘗試更新*兩個*列,將NOW()賦值給'logindate'和另一個表列。看看另一列的更新是否成功。 – spencer7593