我想我先说我通常擅长这种东西,除非我真的需要帮助,否则不会问。
我有一个名为“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”
帮助:(
答案 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]);