Struktura skryptu zapytania SQL
Przewiń w dół, aby zobaczyć strukturę skryptu zapytania SQL. Możesz wygenerować plik skryptu dla każdego użytkownika bazy danych Autoreply, który jest w stanie wysyłać wiadomości SMS, jeśli będą postępować zgodnie ze skryptem. Plik działa z każdą przychodzącą wiadomością i wybiera wiadomości wychodzące zgodnie z filtrem.
Wprowadzenie
Spójrz na plik skryptu. Możesz zobaczyć, że jest podzielony na sekcje oddzielone pustymi liniami (Rysunek 1). Możesz napisać tyle sekcji, ile chcesz, bez maksymalnego limitu. Sekcje są czytane sekwencyjnie, a pierwsza sekcja, która pasuje do przychodzącej wiadomości SMS, zostanie użyta do utworzenia odpowiedzi.
Pierwsza linia każdej sekcji to warunek filtrowania, a następne jedna lub więcej instrukcji SQL to akcja. Instrukcje SELECT SQL mogą zwrócić jedną lub więcej wiadomości odpowiedzi. Jeśli warunek filtrowania pasuje do danych przychodzącej wiadomości, wywołuje wykonanie instrukcji aż do napotkania pustej linii. W tym przypadku nie sprawdza innych sekcji.
Warunek
Każda sekcja zaczyna się od warunku składającego się z pojedynczej linii podzielonej na dwie części (Rysunek 2)
Pierwsza część to selektor celu dopasowania, pojedynczy znak który określa, która część przychodzącej wiadomości powinna być filtrowana (Rysunek 3). FONT style="font-size:15px;">Możesz wybrać znak selektora celu dopasowania z następujących opcji:
# Opcje warunku: # n - jeśli numer telefonu nadawcy pasuje do wzorca # m - jeśli tekst wiadomości pasuje do wzorca # k - jeśli słowo kluczowe pasuje do wzorca. (Słowo kluczowe to pierwsze słowo # wiadomości. Słowo kluczowe jest konwertowane na wielkie litery)Rysunek 3 - Selektory celu dopasowania
Druga część to wzorzec dopasowania, który jest filtrem znaków (Rysunek 4). Te przykłady wzorców dopasowania działają na celu 'm' wiadomości tekstowej:
m.* - pasuje do dowolnej wiadomości tekstowej m^abc.* - pasuje, jeśli wiadomość tekstowa zaczyna się od 'abc' lub 'ABC' m.*abc.* - pasuje, jeśli wiadomość tekstowa zawiera 'abc' lub 'ABC'Rysunek 4 - Przykłady wzorców dopasowania
Tutaj możesz znaleźć samouczek wyrażeń regularnych dla dostępnych wzorców dopasowania.
Akcja
Każdy filtr warunku jest następowany przez akcję, która składa się z instrukcji SQL.
Możesz wysyłać wiadomości SMS tylko za pomocą zapytań SELECT SQL, ale możesz również uruchamiać instrukcje INSERT i UPDATE. Pamiętaj, że pierwszy parametr zestawu wyników SELECT to odbiorca wiadomości do wysłania, podczas gdy drugi parametr to sama wiadomość. Na Rysunku 5 możesz zobaczyć kilka przykładów.
k^RED INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red' k^BLUE SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue' k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'Rysunek 5 - Przykłady instrukcji SQL, gdzie odbiorcą jest '$sender'
Następujące słowa są zastępowane w instrukcjach SQL:
Słowa | Wartość | $originator | Numer telefonu, z którego została wysłana wiadomość. |
---|---|
$sender | =$originator ($sender to inna nazwa dla $originator.) |
$recipient | Numer telefonu, na który została wysłana wiadomość. |
$receiver | =$recipient ($receiver to inna nazwa dla $recipient.) |
$messagedata | Tekst wiadomości. |
$keyword | Pierwsze słowo w wiadomości. To słowo nazywa się słowem kluczowym. |
$after | Pozostały tekst po słowie kluczowym. |
$senttime | Znacznik czasu pokazujący, kiedy wiadomość została wysłana. |
$receivedtime | Znacznik czasu pokazujący, kiedy wiadomość została odebrana. |
$messagetype | Typ wiadomości, w większości przypadków 'SMS:TEXT'. |
$id | Unikalny ciąg znaków. Identyfikuje każdą wiadomość w Ozeki SMS Gateway. |
$operator | Nazwa dostawcy usług. Odbiera wiadomość w Ozeki SMS Gateway. |
$1 | Pierwsze słowo w wiadomości. |
$2 | Drugie słowo w wiadomości. |
$3 | Trzecie słowo w wiadomości, itd... |
Każda instrukcja SQL jest wykonywana linia po linii, aż interpreter dotrze do pustej linii, gdzie ostatecznie się zatrzymuje.
(Wskazówka: Możesz uzyskać treść wiadomości odpowiedzi tylko za pomocą instrukcji SELECT.)
OdpowiedźZestaw wyników instrukcji SELECT SQL zawiera wiadomości do przesłania lub odpowiedzi. Liczba wierszy w zestawie wyników określa liczbę wiadomości do wysłania. (Rysunek 6)
Zestaw wyników może zawierać następujące parametry:recipient - Pierwsza kolumna zestawu wyników (Wymagane) messageData - Druga kolumna zestawu wyników (Wymagane) messageType - Trzecia kolumna zestawu wyników (Opcjonalne) sender - Czwarta kolumna zestawu wyników (Opcjonalne) operatorNames - Piąta kolumna zestawu wyników (Opcjonalne)
Rysunek 6 - Użytkownik bazy danych Autoreply Ozeki 10 SMS Gateway wyśle wiadomości SMS z wyników.
Przykład
Spójrz na przykład, jak filtrować pierwsze słowo w każdej przychodzącej wiadomości i jak wykonywać oddzielne działania dla każdego z nich. Działanie zależy od tego, czy słowo to 'RED', 'BLUE' czy inne. Wielkie i małe litery są traktowane jednakowo. (Rysunek 7)
k^RED INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red' #Pierwszy filtr sprawdza, czy słowem kluczowym było 'RED'. #Jeśli tak, INSERT-uje wiadomość do tabeli 'log' #i SELECT-uje 'Red is a good colour.' jako wiadomość odpowiedzi. #Jeśli nie, przechodzi do następnego filtra. k^BLUE SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue' #Drugi filtr sprawdza, czy słowem kluczowym było 'BLUE'. #Jeśli tak, SELECT-uje 'Blue is not the best option.' jako wiadomość odpowiedzi. #Jeśli nie, przechodzi do następnego filtra. k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default' #Trzeci filtr zaakceptuje każde inne słowo kluczowe. #SELECT-uje 'There is no data for this keyword.' jako wiadomość odpowiedzi.Rysunek 7 - Przykładowy skrypt zapytania SQL
Spójrz na tabele SQL na Rysunku 8 i 9, aby przeanalizować następujący przykład:
id keyword msg ---------- ------------------------------ ------------------------------------- 1 default There is no data for this keyword. 2 red Red is a good colour. 3 blue Blue is not the best option.Rysunek 8 - Tabela 'autoreplymessage'
id sender message ---------- ------------------------------ ------------------------------------- 1 +3620123456 red Hello Autoreply Database User 2 +3670654321 red Good day to you RecipientRysunek 9 - Tabela 'log' dla przychodzącej wiadomości
More information
- Przewodnik instalacji
- Utwórz układ bazy danych
- Przykładowy plik skryptu
- Struktura skryptu