1

私のMySQLデータベースのデータベーススキーマは次のとおりです。

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

RedBeanPHP を ORM として使用して、情報をデータベースに保存しています。ここでは、ドキュメント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

formatのecho呼び出しは次を返します。

2012-09-05 00:00:00

すべてが桃色で、機能しています。

ただし、RedBeanPHP を使用してデータベースに保存しようとすると、次のエラーが発生します。

致命的なエラー: C:\xampp\htdocs\blog-uvm\rb.php:4880 のメッセージ 'Invalid Bean: property fecha' を含む例外 'RedBean_Exception_Security' がキャッチされません: #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 は datetime オブジェクトを処理できませんか?

4

2 に答える 2

4

RedBeanのドキュメント( More data typesDateTime ) に従って、オブジェクトが文字列形式の場合にのみ保存できます。

例えば:

// 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'));
于 2012-09-05T13:27:40.933 に答える
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.
于 2012-09-05T13:30:21.900 に答える