| 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: 10 let
|
|||
0