php
  • mysql
  • orm
  • redbean
  • 2010-07-09 5 views 7 likes 
    7

    A partir de ce code:Redbean O/RM stocker "date" comme 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); 
    

    Je reçois ce 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'); 
    

    est-il une manière particulière d'utiliser date avec redbean?

    Répondre

    4

    trouvé ceci: http://groups.google.com/group/redbeanorm/browse_thread/thread/6961ac635e6886f6

    L'Optimiseur va maintenant convertir des colonnes avec des valeurs datetime DateTimeFields. Si une valeur différente est insérée, la colonne sera inversée par OODB en mode fluide.

    1

    Vous pouvez utiliser time() ou modifier le type de colonne après avoir gelé le DB.

    +0

    mais il sera stocké sous la forme d'un entier, et il sera plus difficile de faire un SQL basé sur la comparaison de date. – Sirber

    1

    L'outil Standard Optimizer gère les colonnes DateTime. Vous pouvez le vérifier ici: http://redbeanphp.com/#/Plugins (presque à la fin de la page)

    4

    On dirait que vous devez être très précis dans le format d'une colonne datetime. Par exemple, le code suivant doit fournir une date/colonne de temps:

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

    Plus précisément, "Ymd" pour ce jour, et "Ymd H: i: s" pour datetime, sont les formats que RedBean recherche.

    Questions connexes