pdo 插入语句使用日期时间错误

pdo insert statement using datetime errors

我有一个 table 字段类型为 TIMESTAMP

在我的网页上,我有两个字段,发送的值如下。

$eDate = "Wed, 01 Apr 2015";
$eTime = "11:35 pm";

使用以下代码,我试图将值插入 table

$str = trim($eDate) . " " . trim($eTime);
$eventDateTime = DateTime::createFromFormat("D\, d M Y g:i a", $str);

$conn = new PDO("mysql:host=$server_name;dbname=$db_name", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

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

//insert record
$statement = $conn->prepare("INSERT INTO events VALUES(DEFAULT, AES_ENCRYPT(:newEntryTitle,'$secretKey'), AES_ENCRYPT(:newEntry,'$secretKey'), :eventDate, :uid, :submission_date)");
$statement->bindParam(':newEntryTitle', $entity_elm2, PDO::PARAM_STR);
$statement->bindParam(':newEntry', $entity_elm1, PDO::PARAM_STR);
$statement->bindParam(':eventDate', $eventDateTime->format('Y-m-d H:i:s'), PDO::PARAM_STR);
$statement->bindParam(':uid', $_SESSION["UserID"]);
$statement->bindParam(':submission_date', $dateCreated);
$statement->execute();
$last_id = $conn->lastInsertId();

我遇到错误

Call to a member function format() on a non-object

我已经为此苦苦挣扎了几个小时,没有任何解决办法。 有人可以帮忙吗。请

TIMESTAMP 数据类型应接受时间戳。换行

$statement->bindParam(':eventDate', $eventDateTime->getTimestamp() ...

好的伙计们。我已经整理好了。问题不在于脚本。问题出在我收到的输入上。日期部分是“2015-5-1”,而不是我描述的方式。更改了格式,问题消失了。