Autor Zpráva
Anonymní
Profil *
Ahoj, lidi, prosím o radu. Z formuláře mám hodnotu $_POST["nove_jmeno"], kterou bych chtěl uložit do DB. Tohle nefunguje:
MySQL_Query("insert into osoby(jmeno) values (\"$_POST['nove_jmeno']\");");

Takhle by to šlo, ale myslím, že je to dost kostrbaté řešení, a navíc převádět ty proměnné
z POST na lokální proměnné :-/....
$neco = $_POST["nove_jmeno"];
MySQL_Query("insert into osoby(jmeno) values (\"$neco\");");
Aesir
Profil
Anonymní:

mysql_query("INSERT INTO osoby (jmeno) VALUES ('$_POST[nove_jmeno]')");
WertriK
Profil
MySQL_Query("insert into osoby(jmeno) values ('".$_POST["nove_jmen"]."');");
Casero
Profil
Anonymní
neescapuj ty "
Anonymní
Profil *
fungují obě varianty, děkuji a žehnám vám, guruové :)
anode
Profil
Neodpustím si poznámku, že
mysql_query("INSERT INTO osoby (jmeno) VALUES ('$_POST[nove_jmeno]')");
je formálně špatně, protože spoléhá na to, že nedefinovaná konstanta nove_jmeno se bude interpretovat jako řetězec 'nove_jmeno'. Až budeš někde opravdu definovat konstantu nove_jmeno, budeš se hodně divit. Správnější je proto
mysql_query("INSERT INTO osoby (jmeno) VALUES ('{$_POST['nove_jmeno']}')");

EDIT: pardon, beru zpět, použito uvnitř "" je to opravdu striktně v pořádku, omlouvám se za zmatky (ale tohle mě opravdu překvapilo :O )
rozdíl by byl při přímém echu: echo $_POST[nove_jmeno]; vs. echo $_POST['nove_jmeno'];
Joker
Profil
Já to stejně radši dělám takhle:
MySQL_Query('insert into osoby(jmeno) values ("'.$_POST['nove_jmeno'].'");");
llook
Profil
anode
To není pravda, uvnitř double-quoted řetězce to nove_jmeno za konstantu považováno není. Schválně si to zkus:

$pole = array('nove_jmeno' => 'nove_jmeno', 'konstanta' => 'konstanta');
define('nove_jmeno', 'konstanta');
echo "$pole[nove_jmeno]";
anode
Profil
llook
1.9.2006 16:45:35 · Změnil/a: anode
EDIT: pardon, beru zpět...

Nemám, co bych dodal
Toto téma je uzamčeno. Odpověď nelze zaslat.

0