大家好,我可以插入这个吗
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";
}
}
最佳答案
如果您确实想插入您生成的日期时间,则可以这样做。
注意:日期的格式必须为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";
}
如果您想查看,请向用户显示任何其他格式的日期时间,这是表示层的工作,将其重新格式化为任何区域设置特定的格式。
Your script was at risk of SQL Injection Attack Have a look at what happened to Little Bobby Tables Even if you are escaping inputs, its not safe! Use prepared parameterized statements
关于php - MYSQL/PHP 插入日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42202803/