Autor | Zpráva | ||
---|---|---|---|
Anonymní Profil * |
#1 · Zasláno: 13. 11. 2009, 14:44:16
Zdravim, jak spravne napsat funkci pro escapovani promenne pri editaci do databaze?
$dotaz = "UPDATE text SET nazev='$nazev'; $dotaz = "UPDATE text SET nazev='preved($nazev)'; Dekuji |
||
perun Profil |
#2 · Zasláno: 13. 11. 2009, 14:52:43
$dotaz = "UPDATE text SET nazev='".mysql_real_escape_string($nazev)."'"; |
||
Anonymní Profil * |
#3 · Zasláno: 13. 11. 2009, 14:58:24
Ale ja bych chtel zavolat tuto funkci
function preved($value,$connection) { if (get_magic_quotes_gpc() == 0) { return mysqli_real_escape_string($connection,$value); } return $value; } |
||
Anonymní Profil * |
#4 · Zasláno: 13. 11. 2009, 15:02:45
Nekde jsem videl tento zapis ukladani do databaze
$sql = "INSERT INTO `text`(`nazev`) VALUES (\"" . dbPut($nazev,$connection) . "\"); Co znamenaji ty lomitka na zacatku a konci? |
||
Nox Profil |
#5 · Zasláno: 13. 11. 2009, 15:25:33 · Upravil/a: Nox
stejně jako píše perun, jen vyměníš název funkce
v podstatě ale bereš ten problém špatně, protože ty nepíšeš jakoby funkci do update, ale ty prostě potřebuješ vložit do nějakého řetězce výsledek nějaké funkce, což provedeš tak, že vezmeš levou část řetězce, dát operátor spojení (konkatenace) "." potom volání funkce potom zase "." a dál zbytek řetězce ------ ty umožňují přesněji specifikovat rozsah identifikátoru a odlišit ho... pokud budeš používat tyhle uvozovky (levý alt+96), tak můžeš mít třeba i mezeru v názvu sloupce/tabulky nebo mít název sloupce shodný s nějakým rezervovaným slovem: insert into text neco (.... insert into `text neco` (.... insert into insert každopádně spíš doporučuji normální název tabulky / sloupce a minimálně to nebudeš muset psát |
||
Anonymní Profil * |
#6 · Zasláno: 13. 11. 2009, 15:35:50
Takze tohle reseni vkladani do tabulky mam v poradku:
function preved($value,$connection) { if (get_magic_quotes_gpc() == 0) { return mysqli_real_escape_string($connection,$value); } return $value; } $datum = preved(date("d.m.Y"),$connection); $nadpis = preved($_POST['nadpis'],$connection); $dotaz = "INSERT INTO `tabulka`(`datum`, `nadpis`) VALUES ('".$datum."','".$nadpis."')"; |
||
Nox Profil |
#7 · Zasláno: 13. 11. 2009, 16:03:24
mělo by to bý dobře ... v tomto konkrétním případě tam ` psát nemusíš (ikdyž můžeš, nic nezkazíš, osobně se mi ale nechce :) )
když by to nefungovalo, tak předělej mysql_query("..."); na mysql_query("...") or echo mysql_error(); nebo místo echo dát die/exit (zajímavé ... mysqli verze má převrácené argumenty...) |
||
Časová prodleva: 14 let
|
0