tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Vkládání datumu

před 10 lety

tr.
Člen | 79

Ahoj, jak vložit datum v tomto případě:

Query skládám takto:

‚UPDATE [messages] SET ', $values, 'WHERE [id] =%i‘, $id

Jedna z položek těch $values je tekovéhle datum:

$values->_date = time();

A tabulka má formát datetime

Během UPDATE se nic nevloží. Lze nějak nastavit na úrovni PHP typ toho sloupečku, nebo se to dělá jinak? Mám to time() nějak zkonvertovat na String?

Díky a s pozdravem Tomáš

před 10 lety

romansklenar
Člen | 657

Můžeš využít DateTime:

$values['date'] = new DateTime('23.1.2007 10:23');

Formát data databáze se dá nastavit už při připojení:

dibi::connect(array(
    ...
    'formatDateTime' => "'Y-m-d H-i-s'",
));

před 10 lety

tr.
Člen | 79

Ahoj,
použil jsem to řešení.

přidal jsem tenhle řádek:

$values->_date = dibi::datetime(time());

Teď mi to píše warning:

Strict Standards: date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‚Europe/Berlin‘ for ‚CEST/2.0/DST‘ instead in /Applications/MAMP/htdocs/CoffeeVendingMachineII/libs/dibi/drivers/mysql.php on line 301

Mám si to sám naformátovat do stringu, nebo je nějaký způsob jak vložit datum skrz pole (kde nemám možnost definovat typ proměnné) skrz dibi do databáze? Co vlastně znamená tahle hláška, chybí mi někde něco v konfiguraci PHP?

Díky Tom

před 10 lety

tr.
Člen | 79

--- Vyřešeno ---

Děkuji za pomoc, nastavil jsem časovou zónu a je vśe v pořádku.