![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 184 Pomógł: 13 Dołączył: 7.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Potrzebny mi parser zapytań podobnych do mysql, mój string: "UPDATE(tabela) SET(imie='janek' nazwisko='kowalski') WHERE(id=1)" To co chcę otrzymac to poniższa tablica:
Ten post edytował windman 4.03.2009, 12:43:11 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
O panie, i myślisz, że to w pięciu linijkach da się napisać? Parser znajdujący się w phpMyAdminie waży 125 KB. W PEAR można znaleźć jakąś klasę SQL_Parser, ale ona jest kiepsko udokumentowana, nierozwijana od 5 lat i w ogóle ciężko się rozeznać tak na pierwszy rzut oka, co ona dokładnie robi.
Ewentualnie zawsze możesz napisać go samodzielnie, ale to nie będzie łatwe zadanie ![]() -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli zapytanie będzie miało złożoność podobną do zapytania podanego w pierwszym poście, to nie widzę problemu. Wystarczy kilka linijek i preg_match().
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 184 Pomógł: 13 Dołączył: 7.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
O panie, i myślisz, że to w pięciu linijkach da się napisać? Parser znajdujący się w phpMyAdminie waży 125 KB. W PEAR można znaleźć jakąś klasę SQL_Parser, ale ona jest kiepsko udokumentowana, nierozwijana od 5 lat i w ogóle ciężko się rozeznać tak na pierwszy rzut oka, co ona dokładnie robi. No i ok... miałem nadzieję, że wyprowadzi mnie ktoś z błędu, że to wcale nie jest trudne i jest magiczna funkcja, która wszystko zrobi sama... Pozdrawiam |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
No niestety
![]() -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 184 Pomógł: 13 Dołączył: 7.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli zapytanie będzie miało złożoność podobną do zapytania podanego w pierwszym poście, to nie widzę problemu. Wystarczy kilka linijek i preg_match(). a jednak... złożonośc dokładnie taka, dojdzie jeszcze LIMIT ORDERBY itp. to jednak nie komplikuje zadania. To co najważniejsze to rozbjanie np: SET(imie='janek' nazwisko='kowalski') na tablice:
Co jeśli ktoś poda taki ciąg: "UPDATE(tabela) SET(imie='jan')ek' nazwisko='kowalski') WHERE(id=1)" tutaj parser pomysli, że imie='jan'... mysql_escape_string powinno pomóc... niestety wyrażenia regularne nie są moją mocną stroną... Czy ktoś podejmie się próby napisania tych kilku linijek? No niestety ![]() Nie chcę kolorowac i nie piszę phpMyAdmina.. to co piszę to baza (za dużę słowo w tym przypadku) na plikach tekstowych. Pomyślałem, że ładnie będzie wyglądało coś takiego:
Oczywiście można w metodzie query przekazac odpowiednie tablice ['nazwa_pola'] = 'wartosc' ale nie wygląda to już tak fanie... Ten post edytował windman 4.03.2009, 13:50:14 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 10:47 |