Autor | Zpráva | ||
---|---|---|---|
Milhauscorpse Profil * |
#1 · Zasláno: 27. 1. 2015, 19:51:09
Dobrý večer.Potřeboval bych poradit.
Nevím si rady s příkazem INSERT. mám toto: mysql_query("insert into zkusebna_uloz (datum,'$enter') values ('$datum','$oddo')")or die(mysql_error()); a stále mi to vyhazuje chybu: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1') values ('2015-01-01','12-00')' at line 1 A stále nemohu přijít na to kde je ta chyba v zápisu. (ta "1" je v tomhle případě ta proměnná "enter") Děkuji za rady. |
||
Dan Charousek Profil |
#2 · Zasláno: 27. 1. 2015, 19:56:24
V názvů tabulek se nepoužívají apostrofy, místo nich tam jsou tyto. jejichž název neznám, zkosené apostrofíky:
`` A nebo nebo je můžeš vynechat.
Jinak přečti si co psal o mysql_* funkcích lionel: jak vytahnot z databaze preve pripsanou informaci. |
||
Milhauscorpse Profil * |
#3 · Zasláno: 27. 1. 2015, 20:05:54 · Upravil/a: Milhauscorpse
Změnil jsem tedy příkaz na toto:
mysql_query("insert into zkusebna_uloz (datum,`$enter`) values (`$datum`,`$oddo`)")or die(mysql_error()); A ted to vyhazuje toto: Unknown column '2015-01-01' in 'field list' To "2015-01-01" je v proměnné $datum a ne v názvu sloupce. Změnil jsem tedy příkaz na toto: mysql_query("insert into zkusebna_uloz (datum,`$enter`) values (`$datum`,`$oddo`)")or die(mysql_error()); A ted to vyhazuje toto: Unknown column '2015-01-01' in 'field list' To "2015-01-01" je v proměnné $datum a ne v názvu sloupce. |
||
Dan Charousek Profil |
#4 · Zasláno: 27. 1. 2015, 20:08:34
V názvů tabulek a sloupců se apostrofy nepoužívají. U hodnot naopak zůstávají:
insert into table(`datum`, `neco`) values('hodnota', 'dalsi hodnota') |
||
Milhauscorpse Profil * |
#5 · Zasláno: 27. 1. 2015, 20:09:58
Vyřešeno,děkuji!!!
mysql_query("insert into zkusebna_uloz (datum,`$enter`) values ('$datum','$oddo')")or die(mysql_error()); Jdu studovat ty zápisy! |
||
Keeehi Profil |
#6 · Zasláno: 28. 1. 2015, 00:43:02
Používání dynamických názvů sloupců ($enter) zavání špatným návrhem databáze.
|
||
Dan Charousek Profil |
#7 · Zasláno: 28. 1. 2015, 00:53:54
[#6] Keeehi
Nejspíš máš pravdu, zápis nevypadá nejoptimálnějí (pominu-li to, že chybí ošetření vstupů), ale existují situace, kdy je to korektní (těžko říct, zda je to zrovna tato). $data = array( "jmeno" => "Dan", "prijmeni" => "Charousek", "datum" => "2015-01-28" ); $q = "INSERT INTO table(" . implode(",", array_keys($data)) . ") VALUES('" . implode("','", $data) . "') "; $db->query($q); |
||
Keeehi Profil |
#8 · Zasláno: 28. 1. 2015, 01:20:31
Dan Charousek:
Samozřejmě že existují legitimní případy. Proto jsem nepsal, že je to 100% špatně. Účelem toho příspěvku však bylo hlavně dát Milhauscorpse vědět že možná nedělá věci standardně a dát mu možnost se o to začít zajímat. |
||
Časová prodleva: 10 let
|
0