Из этого кода:
$toolbox = RedBean_Setup::kickstartDev("mysql:*****************"); $r = $toolbox->getRedBean(); $test = $r->dispense("test"); $test->nom = 'Test #1'; $test->date = '2010-07-08'; $test->date_deux = '08/07/2010'; $test->num = 5; $id = $r->store( $test );
Я получаю этот SQL:
CREATE TABLE IF NOT EXISTS `test` ( `id` int(11) unsigned NOT NULL auto_increment, `nom` varchar(255) collate utf8_unicode_ci default NULL, `date` varchar(255) collate utf8_unicode_ci default NULL, `num` tinyint(3) unsigned default NULL, `date_deux` varchar(255) collate utf8_unicode_ci default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6 ; -- -- Dumping data for table `test` -- INSERT INTO `test` (`id`, `nom`, `date`, `num`, `date_deux`) VALUES (1, 'Test #1', '2010-07-08', NULL, NULL), (2, 'Test #1', '2010-07-08', 5, NULL), (3, 'Test #1', '2010-07-08', 5, '08/07/2010'), (4, 'Test #1', '2010-07-08', 5, '08/07/2010'), (5, 'Test #1', '2010-07-08', 5, '08/07/2010');
есть ли специальный способ использовать date
с RedBean?
нашло это: http://groups.google.com/group/redбебельorm / browse_thread/thread/6961ac635e6886f6
Оптимизатор теперь будет преобразовывать столбцы с значениями datetime в datetimefields. Если вставлено другое значение, столбец будет возвращен OODB в режиме жидкости.
Похоже, вам нужно быть очень конкретным в формате для столбца datetime. Например, следующий код должен содержать столбец даты / времени:
$mysqldate = date("Ymd", $your_date); // for date column
ИЛИ
$mysqldatetime = date("Ymd H:i:s", $your_date_time); // for datetime column
В частности, «Ymd» для даты и «Ymd H: i: s» для datetime – это форматы, которые ищет RedBean.
Вы можете либо использовать time (), либо изменить тип столбца после замораживания БД.
Стандартный оптимизатор обрабатывает столбцы DateTime. Вы можете проверить это здесь: http://redbeanphp.com/#/Plugins (почти в конце страницы)