Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

php mysql _query(update...)

[es] :: PHP :: php mysql _query(update...)

[ Pregleda: 4629 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ivan Golubović
AV market
Požarevac

Član broj: 3154
Poruke: 586
*.InfoSky.Net

Sajt: www.AVmarket.rs


+7 Profil

icon php mysql _query(update...)18.09.2002. u 00:31 - pre 262 meseci
Code:

$query = mysql_query("update tabela set prikazi=$prikaz where id=$rb");


E sada ovde mi se javlja problem i nece da mi promeni vrednost u tabeli u koloni prikazi i da zameni sa vrednošću promenljive prikaz.
kaze:

Unknown column 'da' in 'field list'


???
 
Odgovor na temu

vsego
Vedran Sego
asistent na fakultetu
Zagreb

Član broj: 5337
Poruke: 13
*.iskon.hr

Sajt: vsego.cjb.net


Profil

icon Re: php mysql _query(update...)18.09.2002. u 00:53 - pre 262 meseci
$query = mysql_query("update tabela set prikazi='$prikaz' where id='$rb'");

Zaboravio si dodatne navodnike. Onda se desi (recimo za $prikazi="PHP rulez"):
update tabela set prikazi=PHP rulez where id=...
pa "rulez" ispadne (iz perspektive MySQLa) zasebna rijec.

Neki DBEovi su osjetljivi na navodnike (npr. kod brojeva), ali kod MySQLa ih mozes uvijek koristiti (zato sam dodao i kod id-a).

Sretno!
Stari sig je fakat bio predugacak. Evo, sada ga vise nema...
(molim, ne izvlaciti perverzne zakljucke)
 
Odgovor na temu

maliX
ivan malik
bgd/ srbija i crna gora

Član broj: 1796
Poruke: 67
*.mediaworks.co.yu

ICQ: 47807731
Sajt: www.xajckop.co.yu


Profil

icon Re: php mysql _query(update...)20.09.2002. u 11:37 - pre 262 meseci
samo bi se nadovezao na vsego-ov odgovor: pri unosu koristi addslashes() funkciju, a pri ispisu na stranici ih izbaci stripslashes() funkcijom

Code:

/ / unos, izmena
if ($submit) {
$prikaz = addslashes($prikaz);
...
$izmeni = mysql_query(UPDATE tablename SET prikaz='$prikaz' WHERE id='$rb');
...


Code:

/ / prikaz na stranici
...
$prikaz = stripslashes($prikaz);
...


naravno, ukoliko vrednost prikaza moze da sadrzi apostrofe/navodnike

Hu is having fun :)
Nevaspitanje nije opravdanje
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

Sajt: www.baze-podataka.net


+2 Profil

icon Re: php mysql _query(update...)20.09.2002. u 13:14 - pre 262 meseci
Ja bih se nadovezao dalje:

Tvoja nadopuna bi vjerovatno radila u vecini slucajeva, ali u slucajevima kad imas u unesenoj vrijednosti npr. " \\ Rock 'n' Roll slashes \\ " ( primjera radi :) ), sta bi se desilo u slucajevima kad je magic_quotes_gpc ukljucen, a sta kad nije? I sta bi bilo da koristis dodatno addslashes pri upisu i stripslashes pri ispisu iz baze?
Idemo redom...

Ako je u php.ini ukljucen magic_quotes_gpc = On , onda ce taj dopunski addslashes dodati slasheve na vec automatski dodane slasheve, pa ce ti onda npr. izgledati ovako:
Imas polje u koje se unosi neki tekst, kojeg onda proslijedjujesh dalje skripti klikom na submit. Recimo da taj uneseni tekst ima vrijednost:
\\ Rock 'n' Roll slashes \\

Kad submitash tu vrijednost skripti, te pod uslovom da je ukljuchen magic_quotes_gpc, automatski ce se dodati slashevi i imaces onda vrijednost:
\\\\ Rock \'n\' Roll slashes \\\\

Ako ti sad uradish jos jedan dodatni potez sa addslashes funkcijom, imaces:
\\\\\\\\ Rock \\\'n\\\' Roll slashes \\\\\\\\

Kad sve to stavis u bazu, pa potom izvadis iz baze, uradis stripslashes i ispises, trebalo bi da radi.
Medjutim, sta ako magic_quotes_gpc nije ukljucen? U novim verzijama PHP-a, ta opcija je po defaultu iskljucena. Sta ce se desiti onda?

Kad na isti nacin ubacis u bazu tu vrijednost, na kraju ces kao ispis imati:
\ Rock 'n' Roll slashes \

Zashto?
+ 1. ako je magic_quotes_gpc ukljucen, automatski se dodaju slashevi
+ 2. ti dodajesh dopunske funkcijom addslashes
- 3. kad vadis iz baze, automatski se uklanjaju escape slashevi
- 4. sa stripslashes skidash slasheve dodane funkcijom addslashes

Medjutim, ako je magic:quotes_gpc iskljucen, kao sto jeste u vecini slucajeva, onda imas:
-
+
-
-

Dakle, nesto ne valja, imas manjka slashovanja :)

Mnogi koriste slijedecu metodu da bi otkrili da li je ukljucen magic_quotes_gpc i na osnovu toga rade daljnje operacije:

Code:

  if (get_magic_quotes_gpc()) {
  // Overrides GPC variables
  for (reset($HTTP_GET_VARS); list($k, $v) = each($HTTP_GET_VARS); )
  $$k = $HTTP_GET_VARS[$k] = stripslashes($v);
  for (reset($HTTP_POST_VARS); list($k, $v) = each($HTTP_POST_VARS); )
  $$k = $HTTP_POST_VARS[$k] = stripslashes($v);
  for (reset($HTTP_COOKIE_VARS); list($k, $v) = each($HTTP_COOKIE_VARS); )
  $$k = $HTTP_COOKIE_VARS[$k] = stripslashes($v);
  ini_set("magic_quotes_gpc",0);
  }


Ako ovo ubacis na pocetak skripte, sve bi trebalo da radi.

Btw. pogledaj i funkciju mysql_escape_string(), koja je slicna funkciji addslashes(), samo sto ima neke dodatne karaktere koje "escapea".
Nadam se da ce ovo mnogima koristiti, iako nije bash ontopic.
Moderatori bi mogli ovo staviti u FAQ, ako smatraju da je korisno.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


+5 Profil

icon Re: php mysql _query(update...)21.09.2002. u 02:10 - pre 262 meseci
bravo! ovo obavezno u faq!

i ja sam jedared lupao glavu zbog ovakvog problema.

u sustini nije nista strasno, ali moze da prodje neprimeceno prilikom instalacije skripte na server, i da se javi nekoliko dana (nedelja) kasnije, kada je malo teze provaliti sta je uzrok problema...

 
Odgovor na temu

Extremko
Beograd

Član broj: 5256
Poruke: 16
*.office.scnet.yu

ICQ: 144211144
Sajt: www.extremko.tk


Profil

icon Re: php mysql _query(update...)10.10.2002. u 07:58 - pre 262 meseci
Kad smo vec kod toga... gde je taj efejkju?
Hocem da citam
... and May the Force be With You!
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

Sajt: www.baze-podataka.net


+2 Profil

icon Re: php mysql _query(update...)10.10.2002. u 13:05 - pre 262 meseci
FAQ vezan za PHP na ovom forumu, mozes naci na adresi:

http://www.elitesecurity.org/tema/6994
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

[es] :: PHP :: php mysql _query(update...)

[ Pregleda: 4629 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.