2010-07-09 52 views
7

從這個代碼:Redbean O/RM將「date」as varchar(255)?

$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與紅豆一種特殊的方式?

回答

1

您可以使用的時間()或凍結DB後更改列類型。

+0

但它將作爲整數存儲,並且根據日期比較來製作SQL會更困難。 – Sirber 2010-07-09 18:57:50

4

看起來你需要在日期時間列的格式非常具體。例如,下面的代碼應該提供的日期/時間列:

$mysqldate = date("Y-m-d", $your_date); // for date column
OR
$mysqldatetime = date("Y-m-d H:i:s", $your_date_time); // for datetime column

具體而言, 「YMD」 日期,和 「YMD H:I:s」 是日期時間,是RedBean正在尋找的格式。