【发布时间】:2016-08-17 02:43:54
【问题描述】:
我正在尝试将 DatTime 对象保存在 MySQL 数据库中。在插入时,我有这个错误:
“执行'INSERT INTO event (name_event, desc_event, minimumPrice_event, startDate_event, endDate_event, startHour_event, endHour_event, num_ET) VALUES (?, ?, ?, ?, ?, ?, ?, ?)' 时发生异常参数 ["rfreger", "gregregerg", 44, {"date":"2011-01-01 00:00:00","timezone_type":3,"timezone":"Europe/Paris"}, false, false , false, 2]: 可捕获的致命错误:DateTime 类的对象无法转换为字符串"
我不明白为什么该方法尝试将 DateTime 对象转换为字符串
如何解决这个问题?
public function save(Event $event) {
$eventData = array(
'name_event' => $event->getName(),
'desc_event' => $event->getDesc(),
'minimalPrice_event' => $event->getMinimalPrice(),
'startDate_event' => $event->getStartDate(),
'endDate_event' => $event->getEndDate(),
'startHour_event' => $event->getStartHour(),
'endHour_event' => $event->getEndHour(),
'num_ET' => $event->getType()
);
if ($event->getNum()) {
// The event has already been saved : update it
$this->getDb()->update('event', $eventData, array('num_event' => $event->getNum()));
} else {
// The event has never been saved : insert it
$this->getDb()->insert('event', $eventData);
// Get the id of the newly created event and set it on the entity.
$id = $this->getDb()->lastInsertId();
$event->setNum($id);
}
}
【问题讨论】:
-
请将执行查询的代码贴出来
-
这是
$this->getDb()->insert('event', $eventData); -
你的 $sql 语句是在哪里创建的?您在问题中发布的大错误包括您的 SQL 语句,我们必须查看您尝试绑定到该语句的值以推断错误。因此,如果您可以找到将参数绑定到 (?, ?, ?.....) 问号的函数,那么该代码将非常有用
-
我正在使用 Symfony & DBAL,我没有写任何 SQL 语句。
$this->getDb()->insert('event', $eventData);替换语句 -
SQL中startDate_event和endDate_event的数据类型是什么?此外,您将 false 作为 endDate_event 传递。