Autor Zpráva
Matej Ševčík
Profil
Ahojte :), mám taký problém že keď chcem odoslať dáta z formuláru do databázy ale vôbec sa mi to nedá. Kód:
        $name = $_POST['name'];
        $email = $_POST['email'];
        $pass = $_POST['password'];
        mysql_query('INSERT INTO users (name, email, password) VALUES ('$name', '$email', '$pass')');
+ nejaký html formulár a podmienka ktorá zaistí či je odoslaný a tak :).
lionel messi
Profil
Matej Ševčík:
vôbec sa mi to nedá
1. Čo to znamená? Objaví sa nejaká chyba?
2. Za mysql_query (mimochodom, ide o funkciu z rodiny, kt. je označená za zastaralú a bude odstránená) doplň toto:
if (mysql_error()) {
  echo mysql_error;
}
a daj vedieť, čo to vypíše.
3. Vstup do databázy by sa mal escapovať.
Alphard
Profil
Vypište si chybové hlášky.
Předpokládám, že php ohlásí syntaktickou chybu, apostrofy kolem proměnných jsou chápány jako ukončení řetězce. Řešením je použít uvozovky a escapovat jednotlivé proměnné.

lionel messi [#2]:
Jestli správně hádám tu syntaktickou, tak se to k tomu vůbec nedostane.
lionel messi
Profil
Alphard:
lionel messi [#2]:
Jestli správně hádám tu syntaktickou, tak se to k tomu vůbec nedostane.
Máte pravdu, všimol som si to až po odoslaní príspevku a stihli ste na to upozorniť počas mojej editácie.
jefitto44
Profil
mysql_query("INSERT INTO users (name, email, password) VALUES ('".$name."','".$email."','".$password."')");

Apostrofom dáš databázke najavo, že ide o string a úvodzovkou ukončíš "string" a spojíš s iným stringom (s tým, ktorý sa nachádza v premennej). Na spájanie stringov slúži bodka
Matej Ševčík
Profil
To čo poslal jefitto funguje :). lionel messi ak sa môžem spýtať aká funkcia bude namiesto toho? Ja poznám na tento účel iba túto.
lionel messi
Profil
Matej Ševčík:
lionel messi ak sa môžem spýtať aká funkcia bude namiesto toho?
Odporúčam prečítať si celý článok o prechode na MySQLi: www.fisir.tk/itblog/mysql_
Matej Ševčík
Profil
no asi prejdem na to MySQLi ale tam sa ani nevie pripojit do databaze
Alphard
Profil
Nebo rovnou dibi, které poskytuje dodatečnou funkčnost, např. pro insert v [#1], kde je vstupem asociativní pole s klíči pojmenovanými jako sloupce v tabulce by stačilo zavolat
$db->insert('users', $_POST)->execute();
Jestli je v $_POST ještě něco jiného, muselo by se to trochu profiltrovat, ale princip je zřejmý.
jefitto44
Profil
mysqli_connect, alebo PDO, alebo dibi, ako píše alphard. mysql je nielen deprecated ale tiež aj nie najbezpečnejšou variantou. Zmienené tri sú asi najpoužívanejšie

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: