Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Błąd w zapytaniu ? :|
Forum PHP.pl > Forum > Przedszkole
Ulysess
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 questionmark.gif :| nie rozumiem o co z tym chodzi ..
tehaha
zawsze dawaj wartość objętą apostrofami, bo w innym przypadku nadal jesteś narażony na sql injection, pomimo funkcji mysql_real_escape_string()
Ulysess
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 ?:|
tehaha
ale tylko jeżeli zrobisz rzutowanie na (int) to możesz nie używać, ale u Ciebie tego nie widzę
Ulysess
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 questionmark.gif mam wychodzić z założenia że ktoś się włamał do bazy i pozmieniał typy pól ?:|
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.