Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> [php, MySQL] rozpoznać typ zapytania/kwerendy
SebaZ
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 20.09.2006

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


(IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Witam wszystkich. Potrzebuje rozpoznać typ kwerendy/zapytania jakie za chwilę zostanie wykonane. Chodzi mi o ropoznanie czy jest to SELECT, UPDATE lub INSERT.
Czy istnieje jakaś funkcja do tego?
Czy mam może sprawdzać kilka początkowych znaków ciągu z treści kwerendy? i wtedy patrzeć czy jest to, np. SELECT, UPDATE lub INSERT

Z góry dzieki za odpowiedź

Ten post edytował SebaZ 20.09.2006, 14:39:16
Go to the top of the page
+Quote Post
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Po pierwsze nie kwerendy tylko zapytania.
Co do funkcji ktora by to robila to niestety chyba musisz sobie rozpoznac pierwszy wyraz.
Go to the top of the page
+Quote Post
php programmer
post
Post #3





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


  1. <?php
  2. $query = "SELECT * FROM tabela";
  3. $typ = strtolower(substr($query,0,6));
  4. echo $typ;
  5. ?>
Go to the top of the page
+Quote Post
TomASS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Ja bym raczej użył wyrażeń regularnych.

@php programmer :
co byś powiedział na:
  1. SELECT * FROM tabela;DELETE FROM tabela;


Ten post edytował TomASS 20.09.2006, 15:48:56
Go to the top of the page
+Quote Post
SongoQ
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@TomASS A co bys powiedzial na?

  1. INSERT INTO tabela SELECT tabela2
Go to the top of the page
+Quote Post
SebaZ
post
Post #6





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 20.09.2006

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


Cytat(SongoQ @ 20.09.2006, 16:09:02 ) *
Po pierwsze nie kwerendy tylko zapytania.

a czym według Ciebei jest kwerenda? jest to synonim słowa: zapytanie i jak najbardziej pasuje do tego wyrażenia. Jednak żeby wszyscy zrozumieli napisałem kwerenda/zapytanie.

Radzę zajrzeć do słownika synonimów (uwzględniającego język techniczny).

Cytat(SongoQ @ 20.09.2006, 17:05:53 ) *
@TomASS A co bys powiedzial na?

  1. INSERT INTO tabela SELECT tabela2
nie ma to znaczenia bo interesuje mnie zapytanie główne, podzapytanai moga być dowolne

Ten post edytował SebaZ 20.09.2006, 17:12:24
Go to the top of the page
+Quote Post
mike
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(SebaZ @ 20.09.2006, 18:10:56 ) *
nie ma to znaczenia bo interesuje mnie zapytanie główne, podzapytanai moga być dowolne
No to w czm masz problem, weź pierwsze słowo zapytania i sprawdź jakie to slowo.
Zbiór możliwości nie jest chyba za duży, co? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Lista funkcji do manipulowania stringami znajduje sie tutaj: String Functions
Go to the top of the page
+Quote Post
SebaZ
post
Post #8





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 20.09.2006

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


nie ma żadnego problemu... wiem że moge manipulowac stringami i napisałem o tym w pierwszym postcie. Chciałem tylko wiedzieć czy istnieje jakas inna metoda na wykrycie rodzaju zapytania. Ale widzę ze nie ma i dzięki za uświadomienie mnie. To była tylko ciekawość
Go to the top of the page
+Quote Post
SongoQ
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
a czym według Ciebei jest kwerenda? jest to synonim słowa: zapytanie i jak najbardziej pasuje do tego wyrażenia. Jednak żeby wszyscy zrozumieli napisałem kwerenda/zapytanie.

Oczywiscie wiem znaczenie tego. M$ wprowadzajac slowo kwerenda oznaczal widok. Poczawszy od Accessa kwerenda oznaczala zapytanie ktore mialo byc przechowywane w bazie i byla mozliwosc odwolania sie do niego jak do tabeli, dzisiejszy widok (choc teraz mozliwosci sa troche wieksze), choc M$ troche sie zmienilo. Obecnie zamiennie stosuje sie slowo widok/kwerenda czasami zapytanie/kwerenda. Moze troche nieslusznie zwrocilem Ci uwage ale moze z przyzwyczajenia do tego czasami trudno zrozumiec.
Go to the top of the page
+Quote Post
SebaZ
post
Post #10





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 20.09.2006

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


cieszę się, że się zrozumieliśmy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
TomASS
post
Post #11





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


@SongoQ :
Cytat
@TomASS A co bys powiedzial na?

  1. INSERT INTO tabela SELECT tabela2

Ja tylko zakomunikowałem, że do takiego kodu:
  1. <?php
  2. $query = "SELECT * FROM tabela";
  3. $typ = strtolower(substr($query,0,6));
  4. echo $typ;
  5. ?>

Dołożyłbym jeszcze na wszelki wypadek (czyli np: SELECT * FROM tabela;DELETE FROM tabela; )
exploda po ';'
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




@TomASS ale mysql_query nie pozwala na wykonanie wiecej niz jednego zapytania. Twoja konstrukcja by najwyzklej w swiecie wywalila blad.
Go to the top of the page
+Quote Post
SebaZ
post
Post #13





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 20.09.2006

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


do ogólnego zastosowania to miałoby to rację bytu, ale nie jest potrzebne mi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Pytalem, bo kombinuję jak w cms php-Fusion wklepać cacheowanie zapytań (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) a najprostszym sposobem byłoby wstawienie kodu klasy cacheującej do funkcji z których korzysta ten cms (na je w swoim enginie) np.
  1. <?php
  2. function dbquery($query) {
  3. $result = @mysql_query($query);
  4. if (!$result) {
  5. return false;
  6. } else {
  7. return $result;
  8. }
  9. }
  10. ?>
zamiast jej zawartości wstawic kod klasy cachującej.

Jednak po drodzę stanęło kilka przeszkód m.in. rozpoznanie typu zapytania, bo po co cachować INSERT i UPDATE (dla nich tyrzeba kasowac cache aby sie odnowił) a dla SELECT trzeba cahcować

Chyba teraz zrozumieliscie o co mi biega (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
SongoQ
post
Post #14





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Proponuje zamknac - zawsze znajdzie sie przyklad ktory wymaga wiekszego kombinowawania a jak autor posta juz sobie poradzil wiec nie widze wiekszego sensu ciagniecia tego tematu.

Jesli sie myle to otworze.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 00:08