/ / Multidimenzionálne pole spôsobujúce chybu mysql v PHP Insert query - php, mysql, arrays, insert, multidimensional-array

Multidimenzné pole spôsobujúce chybu mysql v PHP Insert query - php, mysql, polia, insert, multidimensional-array

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ď č. 1

Pridá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 POSTd 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