Štruktúra skriptu SQL dopytu
Posuňte sa nižšie, aby ste videli štruktúru skriptu SQL dopytu. Môžete vygenerovať skriptový súbor pre každého používateľa databázy Autoreply, ktorý je schopný odosielať SMS správy, ak budú postupovať podľa skriptu. Súbor pracuje s každou prichádzajúcou správou a vyberá odchádzajúce správy podľa filtra.
ÚvodPozrite sa na skriptový súbor. Môžete vidieť, že je rozdelený na sekcie oddelené prázdnymi riadkami (Obrázok 1). Môžete napísať toľko sekcií, koľko chcete, bez maximálneho limitu. Sekcie sa čítajú postupne a prvá sekcia, ktorá zodpovedá prichádzajúcej SMS, bude použitá na vytvorenie odpovede SMS správy.
Prvý riadok každej sekcie je filtrovacia podmienka a nasledujúce jeden alebo viac SQL príkazov sa nazývajú akcia. SQL SELECT príkazy môžu vrátiť jednu alebo viac odpovedí. Ak filtrovacia podmienka zodpovedá údajom prichádzajúcej správy, vykoná sa príkaz, kým sa nenájde prázdny riadok. V tomto prípade sa nebudú kontrolovať ďalšie sekcie.
Každá sekcia začína podmienkou, ktorá pozostáva z jedného riadka rozdeleného na dve časti (Obrázok 2)
Prvá časť je výberový filter cieľa, jeden znak, ktorý určuje, ktorá časť prichádzajúcej správy by mala byť filtrovaná (Obrázok 3). FONT style="font-size:15px;">Môžete vybrať výberový filter cieľa z nasledujúcich možností:
# Možnosti podmienky: # n - ak telefónne číslo odosielateľa zodpovedá vzoru # m - ak text správy zodpovedá vzoru # k - ak kľúčové slovo zodpovedá vzoru. (Kľúčové slovo je prvé slovo # správy. Kľúčové slovo je konvertované na veľké písmená)Obrázok 3 - Výberové filtre cieľa
Druhá časť je vzor zhody, ktorý je znakový filter (Obrázok 4). Tieto príklady vzoru zhody fungujú na cieľovej správe 'm':
m.* - zodpovedá akémukoľvek textu správy m^abc.* - zodpovedá, ak text správy začína na 'abc' alebo 'ABC' m.*abc.* - zodpovedá, ak text správy obsahuje 'abc' alebo 'ABC'Obrázok 4 - Príklady vzoru zhody
Tu nájdete návod na regulárne výrazy pre dostupné vzory zhody.
AkciaKaždý filter podmienky je nasledovaný akciou, ktorá pozostáva z SQL príkazov.
Môžete odosielať SMS správy len pomocou SQL SELECT dopytov, ale môžete spustiť aj INSERT a UPDATE príkazy. Majte na pamäti, že 1. parameter výslednej sady SELECT je príjemca správy, ktorá má byť odoslaná, zatiaľ čo 2. parameter je samotná správa. Na Obrázku 5 môžete vidieť niekoľko príkladov.
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ázok 5 - Príklady SQL príkazov, kde príjemcom je '$sender'
Nasledujúce slová sú nahradené v SQL príkazoch:
Slová | Hodnota | $originator | Telefónne číslo, z ktorého bola správa odoslaná. |
---|---|
$sender | =$originator ($sender je ďalší názov pre $originator.) |
$recipient | Telefónne číslo, na ktoré bola správa odoslaná. |
$receiver | =$recipient ($receiver je ďalší názov pre $recipient.) |
$messagedata | Text správy. |
$keyword | Prvé slovo v správe. Toto slovo sa nazýva kľúčové slovo. |
$after | Zostávajúci text po kľúčovom slove. |
$senttime | Časová značka, ktorá ukazuje, kedy bola správa odoslaná. |
$receivedtime | Časová značka, ktorá ukazuje, kedy bola správa prijatá. |
$messagetype | Typ správy, ktorý je vo väčšine prípadov 'SMS:TEXT'. |
$id | Unikátny reťazec. Identifikuje každú správu v Ozeki SMS Gateway. |
$operator | Názov poskytovateľa služieb. Prijíma správu v Ozeki SMS Gateway. |
$1 | Prvé slovo v správe. |
$2 | Druhé slovo v správe. |
$3 | Tretie slovo v správe, atď... |
Každý SQL príkaz je vykonaný riadok po riadku, kým interpreter nedosiahne prázdny riadok, kde sa nakoniec zastaví.
(Tip: Obsah odpovede môžete získať len pomocou SELECT príkazov.)
Odpoveď
Výsledná množina príkazov SELECT SQL obsahuje správy, ktoré sa majú preposlať alebo odpovedať. Počet riadkov, ktoré nájdete vo výslednej množine, určí počet správ, ktoré sa majú odoslať. (Obrázok 6)
Výsledná množina môže obsahovať nasledujúce parametre:recipient - 1. stĺpec výslednej množiny (Povinný) messageData - 2. stĺpec výslednej množiny (Povinný) messageType - 3. stĺpec výslednej množiny (Voliteľný) sender - 4. stĺpec výslednej množiny (Voliteľný) operatorNames - 5. stĺpec výslednej množiny (Voliteľný)
Obrázok 6 - Používateľ Ozeki 10 SMS Gateway Autoreply Database odošle SMS správy z výsledkov.
PríkladPozrite si príklad, ako filtrovať 1. slovo v každej prichádzajúcej správe a ako vykonať samostatné akcie pre každú. Akcia závisí od toho, či je slovo 'RED', 'BLUE' alebo iné. Veľké a malé písmená sa berú do úvahy rovnako. (Obrázok 7)
k^RED INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red' #Prvý filter kontroluje, či bolo kľúčové slovo 'RED'. #Ak je to pravda, vloží správu do tabuľky 'log' #a vyberie 'Red is a good colour.' ako odpoveď. #Ak nie, prejde k ďalšiemu filtru. k^BLUE SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue' #Druhý filter kontroluje, či bolo kľúčové slovo 'BLUE'. #Ak je to pravda, vyberie 'Blue is not the best option.' ako odpoveď. #Ak nie, prejde k ďalšiemu filtru. k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default' #Tretí filter akceptuje akékoľvek iné kľúčové slovo. #Vyberie 'There is no data for this keyword.' ako odpoveď.Obrázok 7 - Príklad SQL skriptu
Pozrite si SQL tabuľky na Obrázku 8 a 9, aby ste skúmali nasledujúci prí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ázok 8 - Tabuľka 'autoreplymessage'
id sender message ---------- ------------------------------ ------------------------------------- 1 +3620123456 red Hello Autoreply Database User 2 +3670654321 red Good day to you RecipientObrázok 9 - Tabuľka 'log' pre prichádzajúce správy
More information
- Installation guide
- Create database layout
- Sample script file
- Script structure