Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Błąd w zapytaniu ? :|
Ulysess
post
Post #1





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

Ostrzeżenie: (0%)
-----


witam
mam o to takie 2 zapytania
  1. $wykonano_zapytanie['klan_podanie'] = mysql_query("SELECT `id_clan`,`date` FROM `clan_administration` WHERE `id_char`=".mysql_real_escape_string($id_user)." LIMIT 1") or die(mysql_error());
  2. $klan_podanie = mysql_fetch_assoc($wykonano_zapytanie['klan_podanie']);
  3. $wynik_podanie = mysql_num_rows($wykonano_zapytanie['klan_podanie']);
  4.  
  5. $wykonano_zapytanie['nazwa_klanu'] = mysql_query("SELECT `name` FROM `clan_list` WHERE `id_clan`=".mysql_real_escape_string($klan_podanie['id_clan'])."") or die(mysql_error());
  6. $nazwa_klanu = mysql_fetch_assoc($wykonano_zapytanie['nazwa_klanu']);


i błąd wyskakujący "Something is wrong in your syntax obok '' w linii 1"
błąd dotyczy tego zapytani ->
  1. $wykonano_zapytanie['nazwa_klanu'] = mysql_query("SELECT `name` FROM `clan_list` WHERE `id_clan`=".mysql_real_escape_string($klan_podanie['id_clan'])."") or die(mysql_error());
  2. $nazwa_klanu = mysql_fetch_assoc($wykonano_zapytanie['nazwa_klanu']);


okazało się że chodzi o brak '' w tym fragmencie
  1. ".mysql_real_escape_string($klan_podanie['id_clan'])."
.

Jak to możliwe że wywala błąd skoro pole id_clan w obu tabelach jest typem smallint (IMG:style_emoticons/default/questionmark.gif) :| nie rozumiem o co z tym chodzi ..
Go to the top of the page
+Quote Post
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


zawsze dawaj wartość objętą apostrofami, bo w innym przypadku nadal jesteś narażony na sql injection, pomimo funkcji mysql_real_escape_string()
Go to the top of the page
+Quote Post
Ulysess
post
Post #3





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

Ostrzeżenie: (0%)
-----


zzz.. ost poruszałem temat ciapków -> http://forum.php.pl/index.php?showtopic=16...mp;#entry820963 i nospar stwierdził że ciapków nie trzeba używać w zapytaniach gdzie operuje się liczbami.. to jak to w końcu jest ?:|
Go to the top of the page
+Quote Post
tehaha
post
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


ale tylko jeżeli zrobisz rzutowanie na (int) to możesz nie używać, ale u Ciebie tego nie widzę
Go to the top of the page
+Quote Post
Ulysess
post
Post #5





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

Ostrzeżenie: (0%)
-----


no ale jakie niebezpieczeństwo jest w takim przypadku skoro wartość w warunku lub np przy INSERCie pochodzi z bazy i wiem że typ pola z którego pochodzi jest INT a jeśli wartość pochodzi z obliczeń w 99% uzywam wtedy funkcji ABS (IMG:style_emoticons/default/questionmark.gif) mam wychodzić z założenia że ktoś się włamał do bazy i pozmieniał typy pól ?:|
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 04:11