Autor | Zpráva | ||
---|---|---|---|
Majkelju Profil |
#1 · Zasláno: 13. 9. 2012, 10:14:48
Ahoj, mám takový začátečnický dotaz. Jak správně psát uvozovky při vkládání NULL hodnoty v INSERTu. Zkusil jsem různé možnosti a pořád mi to vkládá nulu místo NULL....momentálně můj dotaz vypadá takhle, takhle mi to aspoň vybarví zvýrazňovač syntaxe. NULL mám na konci:
$result5 = $db->query(" INSERT INTO skupiny (`id`, `znacka`, `nazev`, `k_zatrideni`,`k_mj`, `mnozstvi`, `podil`, `par0`, `par1`, `typ`, `varianta`, `k_predch`) VALUES ('".$newId."', '".$_POST['znacka']."', '".$_POST['nazev']."', '".$idZatrideni."', '".$_POST['mj']."', '".$_POST['mnozstvi']."', '".$_POST['podil']."', '0', '0', '1', '0', '"NULL"') "); |
||
mimochodec Profil |
#2 · Zasláno: 13. 9. 2012, 10:29:22
... '1', '0', NULL) Kromě toho: zvaž možnost nastavit si v databázi pro ten sloupec NULL jako výchozí, pak to z toho dotazu můžeš vynechat. Obdobně ty sloupce typ, varianta, atd. Pokud ale máš důvod tu variantu a další číselné položky vkládat, nedávej je do dotazu jako text = s apostrofy, ale bez nich. No a to nejdůležitější: hodnotu ID nezadávej. Nastav tomu sloupci auto_increment a to, že jde o primární klíč. Vygenerování ID zajistí databáze sama. |
||
Majkelju Profil |
#3 · Zasláno: 13. 9. 2012, 10:38:05
mimochodec: Když to napíšu bez uvozovek, tak mi to vůbec neuloží ten celý záznam... :/
|
||
mimochodec Profil |
#4 · Zasláno: 13. 9. 2012, 10:40:04
Majkelju:
Jakého typu je ten sloupec? |
||
Majkelju Profil |
#5 · Zasláno: 13. 9. 2012, 10:42:40
mimochodec:
je to int. A ještě k tomu id, tam by měl auto_increment už být nastaven...ale do dotazu mám napsat jen '' ? |
||
mimochodec Profil |
#6 · Zasláno: 13. 9. 2012, 10:45:57
Majkelju:
„je to int.“ Nejsem si jist, ale nezdá se mi, že by do int bylo možné zadat NULL. „A ještě k tomu id, tam by měl auto_increment už být nastaven...ale do dotazu mám napsat jen '' ?“ Ne, prostě to úplně vynech. Nepiš tam ani `id`, ani '".$newId."' ani nic místo něj. |
||
Majkelju Profil |
#7 · Zasláno: 13. 9. 2012, 10:50:33
mimochodec:
tzn. vynechat ho jak za INTO, tak i ve VALUES...ok... No právě ty dotazy dělám do už hotové db, a tam NULL u některých záznamů už v tomto sloupci jsou... |
||
Alphard Profil |
#8 · Zasláno: 13. 9. 2012, 10:53:03
Tady někdo přeskočil základy práce s MySQL :-)
Hodnoty pro sloupec auto increment a sloupce se zadanou defaultní hotnotou nebo povoleným vkládáním null není třeba v insertu uvádět. Pokud se uvádí, tak prostě null bez uvození. I int sloupec může obsahovat hodnotu null, je-li povolena. Jestli je povolena ví tvůrce tabulky. |
||
Kajman Profil |
#9 · Zasláno: 13. 9. 2012, 10:53:41
Majkelju:
Vypište si přesně sestavený dotaz a chybu z databáze. Sloupec nesmí být označen jako not null - pak null hodnoty vkládat nejdou. |
||
Joker Profil |
#10 · Zasláno: 13. 9. 2012, 10:55:21
mimochodec:
„Nejsem si jist, ale nezdá se mi, že by do int bylo možné zadat NULL.“ NULL jde vložit do jakéhokoliv sloupce, který není NOT NULL. Uvozovky se píší jen kolem řetězců, takže "NULL" je řetězec, hodnota NULL se píše bez uvozovek. Jinak viz předchozí příspěvky. |
||
mimochodec Profil |
#11 · Zasláno: 13. 9. 2012, 10:56:44
Joker:
> NULL jde vložit do jakéhokoliv sloupce, který není NOT NULL. dík, nevěděl jsem. > Uvozovky se píší jen kolem řetězců, takže "NULL" je řetězec, hodnota NULL se píše bez uvozovek. věděl jsem :-) |
||
Majkelju Profil |
#12 · Zasláno: 13. 9. 2012, 10:57:23
Alphard:
Ne úplně přeskočil, spíš je nedostatečně projel a něco pozapomněl, teď se do toho teprv pořádně dostávám :) Jinak to vynechání pomohlo, díky moc! ;) |
||
Časová prodleva: 12 let
|
0