Avatar billede zac Nybegynder
14. august 2004 - 21:25 Der er 13 kommentarer og
1 løsning

Endnu en gang timestamp!

Jeg har tabel med feltet overskriftTimestamp med datatypen timestamp(14) og nulværdi "ja" samt standardværdi "NULL".

Når jeg så siger:

$query = mysql_query("INSERT INTO sider
(id,overskrift,tekst,overskriftTimestamp)" .
"VALUES ('$id','$overskrift','$tekst','NULL')");

- bliver resultatet kun 14 nuller. Hvorfor?

Jeg har ellers læst, at insert af NULL i timestamp kolonne automatisk sætter kolonnens værdi til nuværende data og tid (timestamp).
Er det noget med timestamp i forhold til NULL, jeg slet ikke forstår?
Avatar billede arne_v Ekspert
14. august 2004 - 21:28 #1
Hm

Du kan starte med at prøve uden single gnyffer omkring NULL altså:

$query = mysql_query("INSERT INTO sider
(id,overskrift,tekst,overskriftTimestamp)" .
"VALUES ('$id','$overskrift','$tekst',NULL)");
Avatar billede snowball Novice
14. august 2004 - 21:29 #2
Når du indsætter noget i en tabel med et Timestamp felt, så skal du ikke inkludere det felt i din SQL - feltet bliver automatisk opdateret af mySQL.
Avatar billede arne_v Ekspert
14. august 2004 - 21:31 #3
det er ikke nødvendigt. Nok ikke engang anbefalelsesværdigt. Men det bør virke.

Fra docs:

Automatic updating of the first TIMESTAMP column in a table occurs under any of the following conditions:

    * You explicitly set the column to NULL.
    * The column is not specified explicitly in an INSERT or LOAD DATA INFILE statement.
    * The column is not specified explicitly in an UPDATE statement and some other column changes value. An UPDATE that sets a column to the value it already has does not cause the TIMESTAMP column to be updated; if you set a column to its current value, MySQL ignores the update for efficiency.
Avatar billede snowball Novice
14. august 2004 - 21:36 #4
Godt nok er jeg nybegynder mht. mySQL, men i de tabeller hvor jeg har et Timestamp felt, der har jeg aldrig inkluderet Timestamp feltet i min SQL, og det er altid blevet opdateret ved INSERT og UPDATE. Kan også være jeg bare er "heldig" ;)
Avatar billede arne_v Ekspert
14. august 2004 - 21:44 #5
Ikke heldig - du bruger bare en af de sidste to bullet points. Spørger bruger
første bullet point.
Avatar billede snowball Novice
14. august 2004 - 21:46 #6
Oh ja, misforstod teksten lidt da jeg læste den første gang ;)
Avatar billede zac Nybegynder
14. august 2004 - 22:27 #7
Det hjalp med at fjerne '' omkring NULL - rent NULL gik lige igennem, det virker!
Det virker derimod ikke med '' alene! Det havde jeg prøvet i forvejen, og har prøvet nu igen.
Point arne v!?
Tak for hjælpen.
Avatar billede arne_v Ekspert
14. august 2004 - 22:28 #8
jo tak
Avatar billede arne_v Ekspert
14. august 2004 - 22:29 #9
Og for en god ordens skyld:

$query = mysql_query("INSERT INTO sider
(id,overskrift,tekst)" .
"VALUES ('$id','$overskrift','$tekst')");

bør også virke.
Avatar billede Slettet bruger
14. august 2004 - 22:43 #10
Forklaringen er, at 'NULL' er en streng bestående af fire tegn - den er ikke det samme som NULL, som er en speciel værdi, der betyder 'ingen værdi'. Den tomme streng er heller ikke magen til NULL.
Avatar billede arne_v Ekspert
22. august 2004 - 23:04 #11
zac>

Du mangler lige at acceptere svaret
Avatar billede arne_v Ekspert
28. august 2004 - 19:19 #12
!
Avatar billede arne_v Ekspert
04. september 2004 - 11:46 #13
!!
Avatar billede zac Nybegynder
20. oktober 2005 - 23:48 #14
undskyld sene svar accept!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester