【问题标题】:Cannot save a DateTime object to a datetime field in MySQL无法将 DateTime 对象保存到 MySQL 中的日期时间字段
【发布时间】:2012-09-05 13:21:45
【问题描述】:

这是我的 MySQL 数据库的数据库架构:

create table noticia 
(
    id int,
    imagen varchar(255),
    fecha datetime,
    titulo varchar(255),
    url varchar(255),
    descripcion varchar(255),
    contenido text
) 

我使用 RedBeanPHP 作为我的 ORM 将信息保存到数据库。这是我根据documentation 将日期抓取并解析为DateTime 对象的地方。

foreach ($element->find('span.fechanoticia') as $fecha) {
   $tmp = str_replace("/", "-", $fecha->innertext);
   print_r($tmp);

   $dateFoo = new DateTime($tmp);
   echo $dateFoo->format('Y-m-d H:i:s');

   $newItem->set_fechanoticia($dateFoo);
}

$tmp变量这个值例如:

05-09-2012

echo 调用格式化返回:

2012-09-05 00:00:00

一切都很好,并且工作正常。

但是,当我尝试使用 RedBeanPHP 将其保存到数据库时,出现此错误:

致命错误:未捕获的异常“RedBean_Exception_Security”与 消息“无效的 Bean:属性 fecha” C:\xampp\htdocs\blog-uvm\rb.php:4880 堆栈跟踪:#0 C:\xampp\htdocs\blog-uvm\rb.php(5108): RedBean_OODB->check(Object(RedBean_OODBBean)) #1 C:\xampp\htdocs\blog-uvm\rb.php(5082): RedBean_OODB->storeBean(Object(RedBean_OODBBean)) #2 C:\xampp\htdocs\blog-uvm\rb.php(7005): RedBean_OODB->store(Object(RedBean_OODBBean)) #3 C:\xampp\htdocs\blog-uvm\index.php(60): RedBean_Facade::store(Object(RedBean_OODBBean)) #4 {main} 抛出 C:\xampp\htdocs\blog-uvm\rb.php 在第 4880 行

RedBeanPHP 不能处理日期时间对象吗?

【问题讨论】:

    标签: php mysql datetime redbean


    【解决方案1】:

    根据RedBean's documentation更多数据类型),您只能以字符串形式保存DateTime对象。

    例如:

    // It's a string - not a DateTime.
    $photo->created = '1995-12-05 19:00:00';
    

    在这种情况下,解决方案应该是保存格式化字符串,而不是 DateTime 对象本身:

    $newItem->set_fechanoticia($dateFoo->format('Y-m-d H:i:s'));
    

    【讨论】:

      【解决方案2】:

      找到这个:http://groups.google.com/group/redbeanorm/browse_thread/thread/6961ac635e6886f6

      The Optimizer will now convert columns with datetime values to datetimefields. If a different value is inserted the column will be reverted by OODB in fluid mode.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多