[英]How to insert the current timestamp into MySQL database using a PHP insert query
在我的MySQL數據庫中,我有一個結構表
username - varchar
insert_time - timestamp
這個表是在MySQL中使用phpMyAdmin工具創建的,對於insert_time
列,我提到了默認值為0000-00-00 00:00:00
。
現在問題是,我必須使用PHP腳本在稍后使用當前時間戳更新此默認值。
我嘗試了以下PHP代碼:
$update_query = 'UPDATE db.tablename SET insert_time=now() '.
'WHERE username='.$somename;
運行PHP腳本時,它會失敗,並且無法在數據庫中插入任何內容。
我究竟做錯了什么?
您收到了什么錯誤消息?
我猜你的實際錯誤是因為你的php變量沒有用引號括起來。 試試這個
$update_query = "UPDATE db.tablename SET insert_time=now() WHERE username='" .$somename . "'";
你對now()的使用是正確的。 但是,您需要在整個查詢周圍使用一種類型的引號,而在值周圍使用另一種類型的引號。
您可以修改查詢以在開頭和結尾使用雙引號,並在$somename
周圍使用單引號:
$update_query = "UPDATE db.tablename SET insert_time=now() WHERE username='$somename'";
忘了把變量放在沒有引號的sql語句中。
$update_query =
"UPDATE db.tablename SET insert_time=NOW() WHERE username='" .$somename."'";
此格式用於獲取當前時間戳並存儲在mysql中
$date = date("Y-m-d H:i:s");
$update_query = "UPDATE db.tablename SET insert_time=".$date." WHERE username='" .$somename . "'";
不喜歡任何這些解決方案。
我就是這樣做的:
$update_query = "UPDATE db.tablename SET insert_time=now() WHERE username='"
. sqlEsc($somename) . "' ;";
然后我使用自己的sqlEsc函數:
function sqlEsc($val)
{
global $mysqli;
return mysqli_real_escape_string($mysqli, $val);
}
您也可以使用UNIX_TIMESTAMP()
代替NOW()
:
$update_query = "UPDATE db.tablename
SET insert_time=UNIX_TIMESTAMP()
WHERE username='$somename'";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.