Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Příkaz SELECT, UPDATE, DELETE, atd.. spadne, pokud dám do příkazu porovnání jednoho sloupečku

V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
lukas.sei
Člen
Avatar
lukas.sei:1.2.2017 19:33

Dobrý den,
Potýkám se s problém, který nechápu. Mám vytvořenou tabulku (fotka struktury tabulky je v příloze.) a když do ní chci něco přidat nebo z ní něco zvolit (SELECT) vše jde v pohodě, dokud do tohoto příkazu nepřidám podmínku se sloupcem "group".

Příkaz proběhne OK:

SELECT * FROM homeworks WHERE subject="test"
INSERT INTO homeworks (subject, page, exercise, date) VALUES (?, ?, ?, ?)
UPDATE homeworks SET subject="test" WHERE page="452"

Příkaz spadne:

SELECT * FROM homeworks WHERE group="page"
INSERT INTO homeworks (subject, page, exercise, date, group) VALUES (?, ?, ?, ?, ?)
UPDATE homeworks SET group="test" WHERE page="452"

Chyba:

PDO::prepare(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group=?

Co dělám špatně ?
Děkuji za každou radu.

 
Odpovědět
1.2.2017 19:33
Avatar
Odpovídá na lukas.sei
Matúš Petrofčík:1.2.2017 19:45

Group je vyhradené slovo v SQL nie? Skús ho obaliť do tých opačných apostrofov group=....

Takto ho SQL server neberie ako stĺpček, ale ako napr. Select, Insert, a pod.

Nahoru Odpovědět
1.2.2017 19:45
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Matúš Petrofčík
Matúš Petrofčík:1.2.2017 19:48
SELECT * FROM `homeworks` WHERE `group`="page"
INSERT INTO `homeworks` (`subject`, `page`, `exercise`, `date`, `group`) VALUES (?, ?, ?, ?, ?)
UPDATE `homeworks` SET `group`="test" WHERE `page`="452"

Asi takto, neviem na isto, dnes už nepremýšľam, ale ide o to aby si obalil názvy tabuľky a názvy stĺpčekov tými opačnými apostrofmi `. Nemusí to byť všade, ale používa sa to hlavne vtedy ak nejaký stĺpček nesie rovnaký názov ako nejaké vyhradené slovo SQL dotazov.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
1.2.2017 19:48
obsah kocky = r^2 ... a preto vlak drnká
Avatar
lukas.sei
Člen
Avatar
lukas.sei:1.2.2017 19:58

Ajo. Asi máte pravdu :D Zkusím a dám vám vědět. (y)

 
Nahoru Odpovědět
1.2.2017 19:58
Avatar
Odpovídá na lukas.sei
Matúš Petrofčík:1.2.2017 20:09

No dobre dobre, daj vedieť :) a prosím, používaj tlačítko "Odpovědět", inak mi nepríde upozornenie ako to dopadlo.

Nahoru Odpovědět
1.2.2017 20:09
obsah kocky = r^2 ... a preto vlak drnká
Avatar
lukas.sei
Člen
Avatar
lukas.sei:1.2.2017 20:10

Děkuji :) Vaší pomocí vyřešeno.

 
Nahoru Odpovědět
1.2.2017 20:10
Avatar
Odpovídá na lukas.sei
Matúš Petrofčík:1.2.2017 20:12

Paráda, není zač ;)

Nahoru Odpovědět
1.2.2017 20:12
obsah kocky = r^2 ... a preto vlak drnká
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.