mysql_query("INSERT INTO data(timestamp,type,lift,sets,reps,weight) VALUES(".$time.",".$_POST[type][$i].",".$_POST[lift][$i].",".$_POST[sets][$i].",".$_POST[reps][$i].",".$_POST[weight][$i].")")or die(mysql_error());
Môj kód je uvedený vyššie. Všetky premenné sú nastavené.
Chyba, ktorú dostávam, je
Vo svojej syntaxe SQL sa vyskytla chyba; v príručke zodpovedajúcej verzii vášho servera MySQL vyhľadajte správnu syntax, ktorú môžete použiť v blízkosti riadku „Standing DB Hammer Curls, 1,2,3)“ na riadku 1
Nie je na to zjavne dôvod.
Mohol by niekto objasniť problém a ideálne vysvetliť, prečo sú viacrozmerné polia také konkrétne, pokiaľ ide o to, čo musia byť uzavreté medzi atď.
na zdravie
odpovede:
1 pre odpoveď č. 1Pridávate "
jednoduché úvodzovky okolo premenných, ktoré vkladáte?
Toto sa nepodarí
$t = "Test";
mysql_query("INSERT INTO data(mystring) VALUES (" . $t . ")");
To bude fungovať
$t = "Test";
mysql_query("INSERT INTO data(mystring) VALUES ("" . $t . "")");
Nezabudnite sa brániť Injekcia MySql
Edit: Vďaka Eric
Áno, mali by ste použiť niečo podobné mysql_real_escape_string()
uniknúť jednoduchým úvodzovkám, ktoré by mohli byť vo vašom POST
d premenné.
Edit: About Injection
Stručne .... pretože je potrebné zabaliť šnúrky "
(jednoduché úvodzovky), ak je znak „napísaný do formulára a potom odoslaný, môže poškodiť kód vloženia alebo aktualizácie.
Ak je do formulára „O“ Brien ”zadaný nasledujúci kód, potom by bol kód MySql
INSERT INTO data(mystring) VALUES ("O"Brien")
Čo je samozrejme nesprávne, také veci je možné zneužiť a použiť na získanie prístupu na webovú stránku. Toto sa využilo po celom svete