我正在使用php的用戶在線和離線狀態。我的問題是,當用戶登錄時,我需要更新TIMESTAMP()列中的時間。但是,這裏更新查詢不起作用。你能告訴我,如何更新它PHP:更新查詢不更新TIMESTAMP()格式列中的時間?
$setLogged = mysqli_query($conn, "UPDATE user SET user_onlineStatus='" . time() . "'WHERE user_id='" . $user_id . "'");
我正在使用php的用戶在線和離線狀態。我的問題是,當用戶登錄時,我需要更新TIMESTAMP()列中的時間。但是,這裏更新查詢不起作用。你能告訴我,如何更新它PHP:更新查詢不更新TIMESTAMP()格式列中的時間?
$setLogged = mysqli_query($conn, "UPDATE user SET user_onlineStatus='" . time() . "'WHERE user_id='" . $user_id . "'");
錯誤是在這裏:
"'WHERE user_id='"
應該是:
"' WHERE user_id='"
另外,如果你遇到了這樣的錯誤,當你查詢不起作用,總是用var_dump()打印查詢並直接在命令行中運行它。
$sql = "UPDATE user SET user_onlineStatus='" . date('Y-m-d H:i:s') . "' WHERE user_id='" . $user_id . "'";
// var_dump($sql)
$setLogged = mysqli_query($conn, $sql);
我都試過,但沒有工作 –
節目,有什麼命令'顯示創建表的用戶;'打印 –
這裏是取值爲字符串(64)「更新用戶設置user_onlineStatus =‘1463336827'WHERE USER_ID = '14’」'當我加入'的var_dump($ SQL)' –
'" . time() . "'
你將它作爲字符串文字傳遞,它是一個函數。
UPDATE user SET user_onlineStatus = time() WHERE user_id='" . $user_id . "'
然而,time()
收益爲Unix時間戳1463338870
格式,而不是2016-05-15 19:01:39
這就是爲什麼它在這裏沒有你,看到你的user_onlineStatus
列是TIMESTAMP類型。理想情況下,您最好使用今日時間和日期的「now」方法,列類型應該是DATE
或DATETIME
。旁註:如上所述,TIMESTAMP類型也是有效的(根據下面的RiggsFolly的評論)。
所以
"UPDATE user SET user_onlineStatus = now() WHERE user_id='$user_id' ";
如果不是非此即彼,那麼我懷疑它是VARCHAR這是一個壞主意。
上DATE,DATETIME參考和TIMESTAMP類型
如果沒有那些爲你工作,那麼你的$user_id
可能會失敗,是未知的它是否包含一個值。
確保它有一個值,所以檢查錯誤。
請參考以下鏈接http://php.net/manual/en/mysqli.error.php和http://php.net/manual/en/function.error-reporting.php 並將其應用於您的代碼。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$setLogged = mysqli_query($conn,
"UPDATE user SET user_onlineStatus = NOW()
WHERE user_id='" . $user_id . "' ") or die(mysqli_error($conn));
幾個未知數:
mysqli_
以外的任何其他接口連接,則這些不同的API不會混合。Foonotes:
你現在的代碼是開放的SQL injection。使用prepared statements或PDO與prepared statements。
@ImranHasan如果你不會按照我的意見,請按照這個建議 – RiggsFolly
* Howdy Smokey * @RiggsFolly :-) –
希望你別介意編輯我的老太婆 – RiggsFolly
您可以通過執行'「更新用戶設置user_onlineStatus = NOW()」,爲響應' – RiggsFolly
謝謝簡化。 '時間()'功能可以正常使用,但問題是在更新查詢 –
搞好的建議'「更新用戶設置user_onlineStatus = NOW()其中USER_ID =‘$ user_ID的’」' – RiggsFolly