如何将日期保存到数据库?

时间:2014-10-21 19:38:46

标签: php mysql

我想我先说我通常擅长这种东西,除非我真的需要帮助,否则不会问。

我有一个名为“working”的数据库列,它设置为DATETIME类型。我希望这能够保留插入其中的时间。

我得到这样的日期

$date = date('Y-m-d H:i:s');

然后我回应它,​​像这样检查

echo $date,"</br>";

显示

2014-10-21 21:35:12

这样可行,但我现在想将这个$ date保存到“工作”列中,就像这个

一样
$ins2 = mysqli_query($con,"UPDATE stats SET stats.worked = $date WHERE stats.id=$id2");

id2是登录用户的ID,它是正确的。

问题是它什么都没做!

没有任何反应,该字段仍为“0000-00-00 00:00:00”

帮助:(

1 个答案:

答案 0 :(得分:0)

这对您不起作用,因为您没有将日期括在引号中。日期是字符串文字,SQL中的每个字符串文字都必须用引号引起来。

这不是将数据传递到SQL的正确方法。您应该通过参数传递数据。

使用mysqli,它看起来像这样:

$ins2 = $con->prepare('UPDATE stats SET stats.worked = ? WHERE stats.id=?');
$ins2->bind_param('ss', $date, $id2);
$ins2->execute();

但是,我强烈建议使用PDO代替mysqli。这要简单得多。 PDO中的相同代码仅一行。

$pdo->prepare('UPDATE stats SET stats.worked = ? WHERE stats.id=?')->execute([$date, $id2]);