Struktura skriptu SQL dotazu

Posuňte se dolů, abyste viděli strukturu skriptu SQL dotazu. Můžete vygenerovat skriptový soubor pro každého uživatele Autoreply Database, který je schopen odesílat SMS zprávy, pokud budou postupovat podle skriptu. Soubor pracuje s každou příchozí zprávou a vybírá odchozí zprávy podle filtru.

Úvod

Podívejte se na skriptový soubor. Můžete vidět, že je rozdělen do sekcí oddělených prázdnými řádky (Obrázek 1). Můžete napsat tolik sekcí, kolik chcete, bez maximálního limitu. Sekce jsou čteny postupně a první sekce, která odpovídá příchozí SMS, bude použita k vytvoření odpovědi SMS zprávy.

První řádek každé sekce je podmínka filtru a následující jeden nebo více SQL příkazů se nazývá akce. SQL SELECT příkazy mohou vrátit jednu nebo více odpovědí. Pokud podmínka filtru odpovídá datům příchozí zprávy, spustí se příkazy, dokud není nalezen prázdný řádek. V tomto případě nebudou kontrolovány další sekce.

v tomto příkladu můžete vidět podmínky filtru a sql příkazy
Obrázek 1 - V tomto příkladu můžete vidět podmínky filtru a SQL příkazy

Podmínka

Každá sekce začíná podmínkou sestávající z jednoho řádku rozděleného na dvě části (Obrázek 2)

první řádek každé sekce se nazývá: podmínka
Obrázek 2 - První řádek každé sekce se nazývá: podmínka

První část je výběr cíle pro shodu, jeden znak, který určuje, která část příchozí zprávy by měla být filtrována (Obrázek 3). FONT style="font-size:15px;">Můžete vybrat znak výběru cíle pro shodu z následujících možností:

# Možnosti podmínky:
#     n - pokud telefonní číslo odesílatele odpovídá vzoru
#     m - pokud text zprávy odpovídá vzoru
#     k - pokud klíčové slovo odpovídá vzoru. (Klíčové slovo je první slovo
#         zprávy. Klíčové slovo je převedeno na velká písmena)
Obrázek 3 - Výběr cíle pro shodu

Druhá část je vzor pro shodu, což je znakový filtr (Obrázek 4).

Tyto příklady vzoru pro shodu fungují na cíli 'm' pro zprávu:
m.* - odpovídá jakémukoli textu zprávy
m^abc.* - odpovídá, pokud text zprávy začíná 'abc' nebo 'ABC'
m.*abc.* - odpovídá, pokud text zprávy obsahuje 'abc' nebo 'ABC'
Obrázek 4 - Příklady vzoru pro shodu

Zde můžete najít návod na regulární výrazy pro dostupné vzory pro shodu.

Akce

Každý filtr podmínky je následován akcí, která se skládá z SQL příkazů.

Můžete odesílat SMS zprávy pouze pomocí SQL SELECT dotazů, ale můžete také spouštět INSERT a UPDATE příkazy. Mějte na paměti, že 1. parametr výsledné sady SELECT je příjemce zprávy, která má být odeslána, zatímco 2. parametr je samotná zpráva. Na Obrázku 5 můžete vidět několik příkladů.


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'
Obrázek 5 - Příklady SQL příkazů, kde příjemcem je '$sender'

Následující slova jsou nahrazena v SQL příkazech:
SlovaHodnota
$originatorTelefonní číslo, ze kterého byla zpráva odeslána.
$sender=$originator ($sender je další název pro $originator.)
$recipientTelefonní číslo, na které byla zpráva odeslána.
$receiver=$recipient ($receiver je další název pro $recipient.)
$messagedataText zprávy.
$keywordPrvní slovo ve zprávě. Toto slovo se nazývá klíčové slovo.
$afterZbývající text po klíčovém slově.
$senttimeČasové razítko, které ukazuje, kdy byla zpráva odeslána.
$receivedtimeČasové razítko, které ukazuje, kdy byla zpráva přijata.
$messagetypeTyp zprávy, který je ve většině případů 'SMS:TEXT'.
$idUnikátní řetězec. Identifikuje každou zprávu v Ozeki SMS Gateway.
$operatorNázev poskytovatele služeb. Přijímá zprávu v Ozeki SMS Gateway.
$1První slovo ve zprávě.
$2Druhé slovo ve zprávě.
$3Třetí slovo ve zprávě, atd...

Každý SQL příkaz je proveden řádek po řádku, dokud interpret nedosáhne prázdného řádku, kde se nakonec zastaví.

(Tip: Obsah odpovědi můžete získat pouze pomocí SELECT příkazů.)

Odpověď

Výsledná sada příkazu SELECT SQL obsahuje zprávy, které mají být přeposlány nebo na které má být odpovězeno. Počet řádků, které najdete ve výsledné sadě, určuje počet zpráv, které budou odeslány. (Obrázek 6)

Výsledná sada může obsahovat následující parametry:
recipient - 1. sloupec výsledné sady (Povinný)
messageData - 2. sloupec výsledné sady (Povinný)
messageType - 3. sloupec výsledné sady (Volitelný)
sender - 4. sloupec výsledné sady (Volitelný)
operatorNames - 5. sloupec výsledné sady (Volitelný)

Obrázek 6 - Uživatel Ozeki 10 SMS Gateway's Autoreply Database odešle SMS zprávy z výsledků.

Příklad

Podívejte se na příklad, jak filtrovat první slovo v každé příchozí zprávě a jak provést samostatné akce pro každé z nich. Akce závisí na tom, zda je slovo 'RED', 'BLUE' nebo jiné. Velká a malá písmena jsou brána v úvahu stejně. (Obrázek 7)

k^RED
INSERT INTO log (sender,message) VALUES ('$sender','$messagedata')
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
#První filtr kontroluje, zda bylo klíčové slovo 'RED'.
#Pokud ano, vloží zprávu do tabulky 'log'
#a vybere 'Red is a good colour.' jako odpověď.
#Pokud ne, přejde k dalšímu filtru.

k^BLUE
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue'
#Druhý filtr kontroluje, zda bylo klíčové slovo 'BLUE'.
#Pokud ano, vybere 'Blue is not the best option.' jako odpověď.
#Pokud ne, přejde k dalšímu filtru.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#Třetí filtr přijme jakékoli jiné klíčové slovo.
#Vybere 'There is no data for this keyword.' jako odpověď.
Obrázek 7 - Příklad SQL dotazu

Podívejte se na SQL tabulky v Obrázku 8 a 9, abyste prozkoumali následující příklad:

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.
 
Obrázek 8 - Tabulka 'autoreplymessage'

id          sender                         message
----------  ------------------------------ -------------------------------------
 1          +3620123456                    red Hello Autoreply Database User
 2          +3670654321                    red Good day to you Recipient
Obrázek 9 - Tabulka 'log' pro příchozí zprávy

More information