如何使用PHP插入查询将当前时间戳插入到MySQL数据库中

在我的MySQL数据库中,我有一个表结构

username - varchar insert_time - timestamp 

这个表是使用phpMyAdmin工具在MySQL中创build的,对于insert_time列,我提到了默认值为0000-00-00 00:00:00

现在的问题是,我必须使用PHP脚本来更新当前时间戳的默认值。

我试着做下面的PHP代码:

 $update_query = 'UPDATE db.tablename SET insert_time=now() '. 'WHERE username='.$somename; 

当PHP脚本运行时,它失败,并且无法将任何东西插入到数据库中。

我究竟做错了什么?

你得到什么错误信息?

我猜你实际的错误是因为你的PHPvariables不包裹在引号中。 尝试这个

 $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'"; 

忘了把variables放在没有引号的sql语句中。

  $update_query = "UPDATE db.tablename SET insert_time=NOW() WHERE username='" .$somename."'"; 

这种格式是用来得到当前的时间戳,并存储在MySQL中

 $date = date("Ymd H:i:s"); $update_query = "UPDATE db.tablename SET insert_time=".$date." WHERE username='" .$somename . "'"; 

不喜欢任何这些解决scheme。

这是我如何做到这一点:

 $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); }