我的PDO命令有问题 插入数据库的数据尤其是DATETIME的数据效果不佳, 没有插入数据。
这是我的数据库表截图:
这是我的代码
public function NewDepo($array){
if(isset($array)){
try
{
$stmt = $this->conn->prepare("INSERT INTO `depo` (`depo_id`, `depo_trx`, `depo_address`, `depo_total`, `depo_status`, `depo_date`, `depo_end`) VALUES (NULL, :trx, :add, :total, 1, :tanggal, :ending)");
$tanggal = time();
$ending = strtotime('+1 day', $tanggal);
$stmt->bindparam(":trx", $array['trx']);
$stmt->bindparam(":add", $array['address']);
$stmt->bindparam(":total", $array['total']);
$stmt->bindparam(":tanggal", $tanggal);
$stmt->bindparam(":ending", $ending);
$stmt->execute();
return $stmt;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
return true;
}else{
return false;
}
}
public function NewPayout($array){
if(isset($array)){
try
{
$stmt = $this->conn->prepare("INSERT INTO `depo` (`depo_id`, `depo_trx`, `depo_address`, `depo_total`, `depo_status`, `depo_date`, `depo_end`) VALUES (NULL, :trx, :add, :total, 2, :tanggal, :ending)");
$tanggal = time();
$ending = strtotime('+1 day', $tanggal);
$stmt->bindparam(":trx", $array['trx']);
$stmt->bindparam(":add", $array['address']);
$stmt->bindparam(":total", $array['total']);
$stmt->bindparam(":tanggal", $tanggal);
$stmt->bindparam(":ending", $ending);
$stmt->execute();
return $stmt;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
return true;
}else{
非常感谢你的帮助。 :)
答案 0 :(得分:2)
通过使用strtotime()
,它将输出为Unix时间戳。但datetime
列需要采用Y-m-d H:i:s
格式
所以试试这个,
$tanggal = date('Y-m-d H:i:s'); // Will give you 2018-04-07 13:00:00
$ending = date('Y-m-d H:i:s', strtotime('+1 day', strtotime($tanggal))); // Will give you 2018-04-08 13:00:00
注意:强>
' H' 24小时格式
' H' 12小时格式
答案 1 :(得分:-1)
您的日期时间格式不正确。它应该是'Y-m-d H:i:s'
。试试这个:
<?php
// incorrect
$tanggal = time();
$ending = strtotime('+1 day', $tanggal);
var_dump([$tanggal, $ending]);
// correct
$tanggal = date('Y-m-d H:i:s');
$ending = date('Y-m-d H:i:s', strtotime('+1 day', strtotime($tanggal)));
var_dump([$tanggal, $ending]);