Autor | Zpráva | ||
---|---|---|---|
Janik Profil * |
#1 · Zasláno: 19. 8. 2008, 01:21:00
Ahoj, čím může být způsobeno to, že pokud vkládám do mysql db data, tak se mi do sloupce, kde je datový formát time a je zde zaplý NULL jako výchozí hodnota vloží místo null 00:00:00 (zkouším vkládat např neexistující proměnou nebo ="") Díky
|
||
joe Profil |
#2 · Zasláno: 19. 8. 2008, 01:48:52
„zkouším vkládat např neexistující proměnou nebo =""“
Nastav výchozí hodnotu sloupce na NULL a do dotazu takový sloupec vůbec nedávej... |
||
Hugo Profil |
#3 · Zasláno: 19. 8. 2008, 05:49:38
Nebo tam vlož přímo NULL.
INSERT INTO `table` ( `null_field` ) VALUES (NULL) |
||
Joker Profil |
#4 · Zasláno: 19. 8. 2008, 09:35:50
Janik
se mi do sloupce, kde je datový formát time a je zde zaplý NULL jako výchozí hodnota vloží místo null 00:00:00 Protože jako výchozí hodnota se vkládá to, co je nastavené jako výchozí hodnota. Že je pro sloupec povolený NULL ještě neznamená, že NULL bude výchozí hodnota. |
||
Kajman_ Profil * |
#5 · Zasláno: 19. 8. 2008, 10:09:14
Joker
Spíš bude problém v tom, že pro mysql není prázdný řetězec '' a null to samé. select ''<=>null Takže i když bude defaultně null hodnota a zadá se jako vstup prázdný řetězec, můžou tam naskákat nuly. |
||
Janik Profil * |
#6 · Zasláno: 20. 8. 2008, 11:05:31
„Protože jako výchozí hodnota se vkládá to, co je nastavené jako výchozí hodnota. “
výchozí je právě NULL |
||
Janik Profil * |
#7 · Zasláno: 20. 8. 2008, 11:16:21
Můj mysql příkaz vypadá takto: (jde mi o sloupec "time")
mysql_query("INSERT INTO $tb values ('$casvlozeni', '$datum', '$time', '$nazev', '$popis')", $spojeni); přičemž $time = NULL; v odpovídajícím sloupci je povolena NULL a výchozí hodnota je NULL |
||
Janik Profil * |
#8 · Zasláno: 20. 8. 2008, 11:19:51
A pořád se mi tam "neukládá" NULL ale 00:00:00
potřebuji používat všechny "časy" i půlnoc a nemohu to tedy při selectu obejít tím if ($zaznam["2"]=="00:00:00" or $zaznam["2"]==NULL){$hodiny="";} else {$hodiny="v ".date('G:i',strtotime($zaznam["2"]))." hodin";} |
||
Janik Profil * |
#9 · Zasláno: 20. 8. 2008, 11:20:59
„do dotazu takový sloupec vůbec nedávej...“
nj, ale $time má hodnotu "null" jenom někdy |
||
nightfish Profil |
#10 · Zasláno: 20. 8. 2008, 11:28:57
„Můj mysql příkaz vypadá takto: (jde mi o sloupec "time")
mysql_query("INSERT INTO $tb values ('$casvlozeni', '$datum', '$time', '$nazev', '$popis')", $spojeni);“ zápis '$time' znamená, že když $time bude NULL, tak se do databáze vloží 'NULL', tedy řetězec - a protože řetězec NULL není platnou hodnotou typu time, uloží se 00:00:00 je potřeba kontrolovat, jestli v $time je NULL a v případě, že ano, tak tam nedávat ty apostrofy |
||
Janik Profil * |
#11 · Zasláno: 20. 8. 2008, 12:05:14
nightfish
Velice děkuji. Níže uvádám kompletní kód, který zajišťuje ukládání daných informací do databáze. Snad to třeba někdy někomu pomůže. Prosím o uzavření tohoto fóra. if ($hodina == "nezadano") {$nezadano="NULL"; $success="<p><B>Informace byla úspěšně přidána do databáze.</B></p>"; mysql_select_db($db, $spojeni); mysql_query("INSERT INTO $tb values ('$casvlozeni', '$datum', $nezadano, '$nazev', '$popis')", $spojeni); echo ($success); } else { mysql_select_db($db, $spojeni); mysql_query("INSERT INTO $tb values ('$casvlozeni', '$datum', '$time', '$nazev', '$popis')", $spojeni); echo ($success); } |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0