Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> preg_match, INSERT INTO xxx VALUES (xxx)
widmogrod
post
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 28.10.2005
Skąd: kraków

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


Witam mam mały problem

przez funkcje preg_match "przecedzam", w mniej więcej taki sposób $zapytanie

  1. <?php
  2.  
  3. $dopasowanie = array();
  4. $zapytanie = 'INSERT INTO niusy VALUES ("yoda","KAKAKA")';
  5. $wzor = '/^INSERT\s+(?:INTO\s+(?P<gdzie>\w+)\w+)\s+(?:VALUES\s+\((?P<co>.+?)\))$/xi';
  6. preg_match($wzor, $zapytanie, $dopasowanie);
  7. print '<pre>';
  8. print_r($dopasowanie);
  9. print '</pre>';
  10.  
  11. ?>


otrzymuje tablice taką jaką chcę

Cytat
Array
(
    [0] => INSERT INTO niusy VALUES ("yoda","KAKAKA")
    [gdzie] => nius
    [1] => nius
    [co] => "yoda","KAKAKA"
    [2] => "yoda","KAKAKA"
)


ale jest mały problem, gdy zapytanie wygląda mniej więcej tak

  1. <?php
  2.  
  3. $zapytanie = 'INSERT INTO VALUES ("yoda","KAKAKA")';
  4.  
  5. ?>


zwraca mi pustą tablicę a chcę mieć tylko puste pole w tablicy [gdzie]

wzoruję się na rozwiązaniu z manuala php ale problem mam z zrozumieniem go do końca a ono działa mniej więcej w taki sposób jaki bym chciał ...

może wiecie jak rozwiązać ten problem lub znacie inny sposób ?!?

Ten post edytował widmogrod 3.05.2006, 20:17:46
Go to the top of the page
+Quote Post
mariuszn3
post
Post #2





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

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


Zamiast plusa zastosuj gwiazdkę.
Myślę, że to powinno zadziałać:
Kod
^INSERT\s+(?:INTO\s+(?P<gdzie>\w*).*?)(?:VALUES\s+\((?P<co>.+?)\))$
Go to the top of the page
+Quote Post
widmogrod
post
Post #3





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 28.10.2005
Skąd: kraków

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


Wielkie dzięki zadziałało (IMG:http://forum.php.pl/style_emoticons/default/thumbsupsmileyanim.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.12.2025 - 08:13