NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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.