2010-11-17 167 views
0

这不工作?请帮忙!!!如何使用PHP MySQL更新日期时间字段?

$query = "UPDATE User SET updated_date = NOW() WHERE pk_item = '$id'"; 
mysqli_query($this->link,$query); 
if(mysqli_errno($this->link)) 
    return -1; 
return 1; 

感谢

+1

请在[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)念起来[如何预防](HTTP:/ /php.net/manual/en/security.database.sql-injection.php)。您的查询很脆弱! – 2010-11-17 16:50:47

+0

mysql_error()的输出是什么?数据库中的“updated_date”字段是什么数据类型? – 2010-11-17 21:00:04

回答

0

如果$id是一个数字字段,你不应该用引号括起来。只要说:

pk_item = $id 

如果不是这样,那么你会得到什么错误信息?

+0

我没有收到任何错误消息。它根本不会更新。如果我打印$查询它说:“更新用户SET updated_date = NOW()WHERE pk_item ='1'”,如果我在mysql客户端shell中键入它工作正常。 PHP似乎不工作... – Ricardo 2010-11-17 16:50:39

+0

你有没有尝试过使用相同的代码的任何其他查询?如果没有查询,PHP代码中的某个地方会出现问题。 – JJJ 2010-11-17 17:26:37

0

你可以使用PHP的日期函数如date(“Y-m-d H:i:s”)或类似的东西。不要忘记把它放在单引号中。

0

您可以编写一个查询

$query = 'UPDATE User 
      SET updated_date = NOW(), 
      DOB = STR_TO_DATE("'.$DOB.'","%d-%m-%Y"), 
      WHERE pk_item ='.$id; 

上面显示两个更新日期时间字段列 1.updated_date - >保存当前日期时间 2.DOB - >保存日期出生日期和时间

注意:总是在单引号中写一个查询,双引号字符串解析字符串。

对于日期时间请参考该link