Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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%)
-----


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
 
Start new topic
Odpowiedzi (1 - 13)
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? 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 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 557
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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 smile.gif
Pytalem, bo kombinuję jak w cms php-Fusion wklepać cacheowanie zapytań 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 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 06:10