Autor | Zpráva | ||
---|---|---|---|
filipbalada12 Profil |
#1 · Zasláno: 21. 11. 2015, 17:22:09
ahoj, mám takový problém a prosím Vás o pomoc. (php se teprve učím) Mám dva soubory, pridat.php a pridat-stroj.php. Soubor pridat-stroj.php obsahuje jednoduchý formulář, který by měl odeslat data do pridat.php, kde už mám script, který by měl odeslat zadaná data do databáze. Script mně sám o sobě funguje, protože když vložím třeba
$sql = 'INSERT INTO `clanky`(`titulek`) VALUES ( "ahoj" )'; , tak se mě to do databáze odešle. Jakmile ale vložím za "ahoj" proměnnou '$a' , tak mě to hlásí chybu Parse error: syntax error, unexpected '$a' (T_VARIABLE) in C:\xampp\htdocs\strojehk.cz\admin\pridat.php on line 14
Přikládám oba soubory: pridat-stroj.php <form action="pridat.php" method="get"> První číslo: <input type="text" name="a"><br> <input type="submit" value="Odeslat"> </form> pridat.php <?php $a = $_GET[a]; $dbhost = 'localhost'; //server $dbuser = 'root'; //uživatel $dbpass = ''; //heslo $pripojeni = mysql_connect($dbhost, $dbuser, $dbpass); //připojení if(! $pripojeni ) { die('Nemůžu se připojit: ' . mysql_error()); //když se databáze nemůže připojit. } $sql = 'INSERT INTO `clanky`(`titulek`) VALUES ( 0,'$a' )'; //vloží data do tabulky v mysql mysql_select_db('stroje'); //vybere databazi $pripojim = mysql_query( $sql, $pripojeni ); if(! $pripojim ) { die('Nemůžu vložit data: ' . mysql_error()); } echo "Data vložena"; echo mysql_error($pripojeni); mysql_close($pripojeni); ?> |
||
Tomáš123 Profil |
filipbalada12:
Obaľ SQL do úvodzoviek namiesto apostrofov alebo použi symbol . na spojenie reťazcov. Ak je $a textový reťazec, je potrebné ešte samú hodnotu obaliť do apostrofov, čiže:
$sql = "INSERT INTO `clanky`(`titulek`) VALUES ( 0,'$a' )"; $sql = 'INSERT INTO `clanky`(`titulek`) VALUES ( 0,\''.$a.'\' )'; # Zvýraznená časť nie je potrebná, ak nejde o textový reťazec. Je veľmi nebezpečné predávať do databázy neošetrené dáta. Použi funkciu mysql_real_escape_string() . Funkcie z rodiny mysql_* sú zastaralé a v ďalších verziách jazyka budú odstránené. Namiesto nich použi radšej funkcie mysqli_* .
|
||
Dan Charousek Profil |
#3 · Zasláno: 21. 11. 2015, 17:32:24
Tři věci:
1) Na řádku dva přistupuješ ke klíči pole, který je řetězec, obal pro "a" do uvozovek: $a = $_GET[a]; 2), 3) viz. [#2] Tomáš123 |
||
filipbalada12 Profil |
#4 · Zasláno: 21. 11. 2015, 17:43:40
super, děkuju moc! :)
|
||
Časová prodleva: 9 let
|
0