timestamp default value - problem

0

Witam.
Mam problem z kolumna w bazie danych, mianowicie tworze sklep internetowy stowrzylem tabele Users z kolumna:

USR_CreateDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

,po wprowadzaniu danych do bazy, w tym polu, zamiast daty stworzenia uzytkownika wyswietlaja mi sie same zera. Proszę o pomoc

0

pokaz inserta, ktorym wstawiasz dane

0

dane wprowadzam przez funkcje scaffolding w Code Igniter ktora ma wbudowany interfejs do wstawiania danych. Wiec po prostu tam nic nie wpisuje, od tego jest chyba wartosc domyslna zeby wstawila dane w to pole jezeli jest puste.

0

nie możesz podejrzeć sqla, którego produkuje???

0

to jest kod ktory mi generuje phpmyadmin po dodaniu danych:

 
INSERT INTO  `sklep`.`users` (
`USR_ID` ,
`USR_Nick` ,
`USR_PASS` ,
`USR_CreateDate` ,
`USR_LastModifyDate` ,
`USR_LastLoginDate` ,
`USR_LastFailedDate` ,
`USR_WrongPassCount` ,
`USR_MustChanePassword` ,
`USR_ActiveByUser` ,
`USR_Active`
)
VALUES (
NULL ,  'gienek',  'hassslo', 
CURRENT_TIMESTAMP ,  '', NULL , NULL , NULL , NULL , NULL , NULL
);
0

na pewno wina lezy po stronie CI, poniewaz jezeli wpisuje dane bezposrednio w phpyadmin to wyswietla mi dobra date, natomiast jezeli dane wpisze poprzez scaffolding albo poprzez funkcje napisana w php to w miejscu daty pojawiaja sie same zera...

0

jeśli chodzi o pole USR_CreateDate to jakoś nie wierzę, aby było w nim 0 po tym zapytaniu, a pozostałe pola z datą to default zostanie wstawione tylko wtedy jak nie podajesz wartości dla kolumny - a tu ta wartość jest podana (NULL)

0

masz racje, wymyslilem sobie caly problem tylko po to zeby zadac hipotetyczne pytanie....dziekuje za pomoc.

0

ma ktos jakis pomysl? chodzi mi tylko o konkretne jedno polez zeby automatycznie sie aktualizowalo po zmianie danych. Szukalem juz wszedzie, ale zero wynikow.

0
  1. dajesz ddl tabeli
  2. dajesz insert, który wykonujesz
  3. dajesz wynik, który dostajesz i którego oczekujesz

od biedy można przyjąć, że 2 i 3 podałeś, ale nigdzie nie widzę 1. I przestań jęczeć bo żadna mi znana baza nie wstawia sobie do pól wartości jakie jej się podobają tylko takie jakie jej każesz.

0

czy jak wrzuce print screena z inserta i z tego co mi wyswietla to mi uwierzysz? Wydaje mi sie ze forum sluzy do pomocy a niepokazywania wyzszosci nad innymi, co ty wlasnie robisz.

0

CREATE TABLE USERS (
USR_ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
USR_TYPE_USRT_ID INTEGER UNSIGNED NOT NULL,
USR_Nick VARCHAR(15) UNIQUE NOT NULL,
USR_PASS VARCHAR(15) NOT NULL,
USR_CreateDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
USR_LastModifyDate VARCHAR(11) NULL,
USR_LastLoginDate VARCHAR(11) NULL,
USR_LastFailedDate VARCHAR(11) NULL,
USR_WrongPassCount INTEGER UNSIGNED NULL,
USR_MustChanePassword INTEGER UNSIGNED NULL,
USR_ActiveByUser INTEGER UNSIGNED NULL,
USR_Active INTEGER UNSIGNED NULL,

PRIMARY KEY(USR_ID),

FOREIGN KEY(USR_TYPE_USRT_ID)
REFERENCES USR_TYPE(USRT_ID)

);

inne daty daje typu varchar poniewaz daty bede w nie wstawial za pomoca wbudowanych funkcji CI

0

tabela

CREATE TABLE USERS (
  USR_ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  USR_TYPE_USRT_ID INTEGER UNSIGNED NOT NULL,
  USR_Nick VARCHAR(15) UNIQUE NOT NULL,
  USR_PASS VARCHAR(15) NOT NULL,
  USR_CreateDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  USR_LastModifyDate VARCHAR(11) NULL,
  USR_LastLoginDate VARCHAR(11) NULL,
  USR_LastFailedDate VARCHAR(11) NULL,
  USR_WrongPassCount INTEGER UNSIGNED NULL,
  USR_MustChanePassword INTEGER UNSIGNED NULL,
  USR_ActiveByUser INTEGER UNSIGNED NULL,
  USR_Active INTEGER UNSIGNED NULL,
  
  PRIMARY KEY(USR_ID),   
);

bez FOREIGN KEY(USR_TYPE_USRT_ID) REFERENCES USR_TYPE(USRT_ID)

zapytanie

INSERT INTO  `sklep`.`users` (
`USR_ID` ,
`USR_Nick` ,
`USR_PASS` ,
`USR_CreateDate` ,
`USR_LastModifyDate` ,
`USR_LastLoginDate` ,
`USR_LastFailedDate` ,
`USR_WrongPassCount` ,
`USR_MustChanePassword` ,
`USR_ActiveByUser` ,
`USR_Active`
)
VALUES (
NULL ,  'gienek',  'hassslo', 
CURRENT_TIMESTAMP ,  '', NULL , NULL , NULL , NULL , NULL , NULL
);

wynik
dupa.png
nie wiem jak ty ale ja tam widzę w USR_CreateDate wartość '2010-12-12 1402'

0

ale wstawiales dane w phpmyadmin czy wskrypcie zewnetrznym. Mowilem na poczatku ze to chyba problem z Code Igniter bo jak wstawiam bezposrednio w phpmyadmin to data jest prawidlowa, natomiast jak wstawiam za pomoca zewnetrznego sktyptu np active records albo przez scaffolding to wyswietlaja mi sie zera. Czytanie ze zrozumieniem sie klania.

0

Z tego wynika, że scaffolding (cokolwiek by to nie było) wstawia w to miejsce wartość 0. A ona nie jest nullem, więc wartość DEFAULT się nie wpisuje. Jedyne rozwiązanie jakie widzę (poza pozbyciecm się scaffolding) to napisanie TRIGGERA ON UPDATE.

0
penta997 napisał(a)

ale wstawiales dane w phpmyadmin czy wskrypcie zewnetrznym. Mowilem na poczatku ze to chyba problem z Code Igniter bo jak wstawiam bezposrednio w phpmyadmin to data jest prawidlowa, natomiast jak wstawiam za pomoca zewnetrznego sktyptu np active records albo przez scaffolding to wyswietlaja mi sie zera. Czytanie ze zrozumieniem sie klania.

prosiłem na samym początku ładnie

Misiekd napisał(a)

pokaz inserta, którym wstawiasz dane

więc sprawdzałem na tym insercie, który dałeś.

Jeśli nie potrafisz sprawdzić jakie zapytanie idzie do bazy to czego oczekujesz od nas???

0
 
        function wstawianie()
	{
		$data = array('USR_PASS' => 'haslo', 'USR_Nick' => 'login');
		$this->db->insert('users', $data);
	}

1 użytkowników online, w tym zalogowanych: 0, gości: 1