大家好我可以插入这个
date_default_timezone_set(Asia/Hong_Kong);
$date = date('"m/d/Y H:i:s"');
而不是
"INSERT INTO date_time(`submitted_time`) VALUES (NOW())"
因为我的问题是使用NOW()
或CURRENT_TIMESTAMP()
给了我一个不准确的时间
我这样做但是当我查看数据库时,这就是插入的内容0000-00-00 00:00:00.0
date_default_timezone_set('Asia/Manila');
if(isset($_POST['submit'])) {
$date = date('"m/d/Y H:i:s"');
$query = "INSERT INTO `date_time`(`submitted_time`)
VALUES('$date')";
if($conn->query($query)) {
echo "success";
} else {
echo "error";
}
}
答案 0 :(得分:2)
如果你真的想插入你生成的日期时间,那就是它的完成方式。
注意:日期的格式必须是Y-m-d H:i:s
,因为这是MYSQL对其DateTime数据类型理解的格式
date_default_timezone_set('Asia/Manila');
if(isset($_POST['submit'])) {
$query = "INSERT INTO `date_time` (`submitted_time`) VALUES(?)";
$stmt = $conn->prepare($query);
// note the DateTime must be in this format to store correctly on a MYSQL database
$dt = date('Y-m-d H:i:s');
$stmt->bind_param('s', $dt);
$status = $stmt->execute();
if(!$status) {
echo $stmt->error;
exit;
}
echo "success";
}
如果要查看,请向您的用户显示任何其他格式的DateTime,该格式是表示层的工作,以将其重新格式化为任何特定于语言环境的格式。
您的脚本 有SQL Injection Attack的风险 看看Little Bobby Tables偶然发生了什么 if you are escaping inputs, its not safe! 使用prepared parameterized statements