这是我的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' 消息'Invalid Bean:property fecha'in C:\ xampp \ htdocs \ blog-uvm \ rb.php:4880堆栈跟踪:#0 C:\ XAMPP \ htdocs中\博客,UVM \ rb.php(5108): RedBean_OODB-> check(Object(RedBean_OODBBean))#1 C:\ XAMPP \ htdocs中\博客,UVM \ rb.php(5082): RedBean_OODB-> storeBean(Object(RedBean_OODBBean))#2 C:\ XAMPP \ htdocs中\博客,UVM \ rb.php(7005): RedBean_OODB-> store(Object(RedBean_OODBBean))#3 C:\ XAMPP \ htdocs中\博客,UVM \的index.php(60): RedBean_Facade :: store(Object(RedBean_OODBBean))#4 {main}抛出 第4880行的C:\ xampp \ htdocs \ blog-uvm \ rb.php
RedBeanPHP可以不处理日期时间对象吗?
答案 0 :(得分:4)
根据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'));
答案 1 :(得分:0)
发现了这个: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.