![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witajcie...
piszę małą aplikację i chciałem w jakiś "wygodny" sposób filtrować dane które trafiają do bazy (głównie mysql_real_escape_string). Ale napotkałem na mały problem, a mianowicie: I oczywiście metoda escape (przykładowa): Wynik jaki dostaniemy: No i wszystko ładnie... ale chciałbym wprowadzić pewną elastyczność - czyli różną ilość argumentów. Próbowałem robić coś w tym stylu (kod #1 jest taki sam - zmiana jedynie kodu metody) Ale nie za bardzo to działa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Probowałem też z func_get_args i foreach'em, ale efekt również "nieciekawy" Nie bardzo w ogóle wiem czy to możliwe (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ale może jest jakiś sposób? Pozdrawiam, EDIT: Można by zawsze ustawić 30 argumentów dla f-cji... i każy jako opcionalny, ale to nie jest za ciekawa wersja (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował Crozin 11.08.2007, 22:46:03 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 189 Pomógł: 0 Dołączył: 4.07.2004 Skąd: z neostrady Ostrzeżenie: (0%) ![]() ![]() |
func_get_args - zwraca zawsze kopie argumentu funkcji
Zasadniczo, wg mojej wiedzy nie ma skutecznego rozwiązania. Można kombinować:
Ale to nie zadziała dla zmiennych lokalnych funkcji. Znalazłem jeszcze takie rozwiązanie:
Ale to raczej też nie zachwyca (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował akubiczek 12.08.2007, 08:28:12 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Pomysł tak szybko jak wymyśliłem, równie szybko porzuciłem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Poprostu często używam/będę używać danych w taki sposób: Kod zmienna='test"test' Dodatkowo zrobilem mały test wydajności (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) tutaj jakies zapytanie - zmienna przyjmuje wartosc test\"test tutaj dalsze operacje... ale niestety zmienna 'zmienna' ma jakies krzaczki, ktorych nie chce;) $set_to_zero przy 1000 powtórzeń - średnio równa sekunda (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) zwykla f-cja z trzeba arg, robiąca to samo - średnio 0.0003sekundy (chociaż muszę zaznaczyć, że w chwili testów komuter "ledwo żył") Pozostaje pisanie za każdym razem ręcznie $db->escape() ale przecież nie będę szczędził klawiszy dla bezpieczeństa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdrawiam, |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 0 Dołączył: 27.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
A nie możesz, po prostu, przekazywać argumentów jako tablicy przekazywanej przez referencję?
Poza tym nie radzę używać funkcji create_function - create_function() is not your friend |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 14:40 |