如何使用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); }