Struktura skripta SQL poizvedbe
Pomaknite se navzdol, da vidite strukturo skripta SQL poizvedbe. Vsakemu uporabniku baze podatkov Autoreply lahko pripravite skriptno datoteko, ki lahko pošilja SMS sporočila, če sledijo skriptu. Datoteka deluje z vsakim dohodnim sporočilom in izbere odhodna sporočila glede na filter.
UvodOglejte si skriptno datoteko. Vidite lahko, da je razdeljena na odseke, ločene s praznimi vrsticami (Slika 1). Napišete lahko toliko odsekov, kolikor želite, brez zgornje meje. Odseki se berejo zaporedno in prvi odsek, ki se ujema z dohodnim SMS, bo uporabljen za ustvarjanje odzivnega SMS sporočila.
Prva vrstica vsakega odseka je pogoj filtra, ena ali več naslednjih SQL stavkov pa se imenuje akcija. SQL SELECT stavki lahko vrnejo eno ali več odzivnih sporočil. Če se pogoj filtra ujema s podatki dohodnega sporočila, pokliče stavke za izvedbo, dokler ne najde prazne vrstice. V tem primeru ne bo preverjal drugih odsekov.
Vsak odsek se začne s pogojem, ki je sestavljen iz ene vrstice, razdeljene na dva dela (Slika 2)
Prvi del je izbirnik cilja za ujemanje, en sam znak, ki določa, kateri del dohodnega sporočila naj se filtrira (Slika 3). FONT style="font-size:15px;">Izbrati lahko znak izbirnika cilja za ujemanje iz naslednjih možnosti:
# Možnosti pogoja: # n - če se telefonska številka pošiljatelja ujema z vzorcem # m - če se besedilo sporočila ujema z vzorcem # k - če se ključna beseda ujema z vzorcem. (Ključna beseda je prva beseda # sporočila. Ključna beseda se pretvori v velike črke)Slika 3 - Izbirniki cilja za ujemanje
Drugi del je vzorec za ujemanje, ki je znakovni filter (Slika 4). Ti primeri vzorca za ujemanje delujejo na cilju 'm' za sporočilo:
m.* - ujema se s katerim koli besedilnim sporočilom m^abc.* - ujema se, če besedilno sporočilo začne z 'abc' ali 'ABC' m.*abc.* - ujema se, če besedilno sporočilo vsebuje 'abc' ali 'ABC'Slika 4 - Primeri vzorcev za ujemanje
Tukaj lahko najdete vadnico o regularnih izrazih za razpoložljive vzorce za ujemanje.
AkcijaVsak pogoj filtra je sledi akcija, ki je sestavljena iz SQL stavkov.
Lahko uporabite samo SQL SELECT poizvedbe za pošiljanje SMS sporočil, lahko pa izvajate tudi INSERT in UPDATE stavke. Ne pozabite, da je 1. parameter rezultata SELECT poizvedbe prejemnik sporočila, ki ga želite poslati, 2. parameter pa je samo sporočilo. Na Sliki 5 lahko vidite nekaj primerov.
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'Slika 5 - Primeri SQL stavkov, kjer je prejemnik '$sender'
Naslednje besede so zamenjane v SQL stavkih:
Besede | Vrednost | $originator | Telefonska številka, s katere je bilo sporočilo poslano. |
---|---|
$sender | =$originator ($sender je drugo ime za $originator.) |
$recipient | Telefonska številka, na katero je bilo sporočilo poslano. |
$receiver | =$recipient ($receiver je drugo ime za $recipient.) |
$messagedata | Besedilo sporočila. |
$keyword | 1. beseda v sporočilu. Ta beseda se imenuje ključna beseda. |
$after | Preostalo besedilo po ključni besedi. |
$senttime | Časovni žig, ki prikazuje, kdaj je bilo sporočilo poslano. |
$receivedtime | Časovni žig, ki prikazuje, kdaj je bilo sporočilo prejeto. |
$messagetype | Vrsta sporočila, ki je v večini primerov 'SMS:TEXT'. |
$id | Enolični niz. Identificira vsako sporočilo v Ozeki SMS Gateway. |
$operator | Ime ponudnika storitev. Prejme sporočilo v Ozeki SMS Gateway. |
$1 | 1. beseda v sporočilu. |
$2 | 2. beseda v sporočilu. |
$3 | 3. beseda v sporočilu, itd... |
Vsak SQL stavek se izvaja vrstico za vrstico, dokler tolmač ne doseže prazne vrstice, kjer se končno ustavi.
(Namig: Vsebino odzivnega sporočila lahko dobite samo z uporabo SELECT stavkov.)
Odgovor
Rezultat izbora SQL stavka vsebuje sporočila, ki jih je treba posredovati ali odgovoriti. Število vrstic, ki jih najdete v rezultatu, bo določilo število sporočil, ki jih je treba poslati. (Slika 6)
Rezultat lahko vsebuje naslednje parametre:prejemnik - 1. stolpec rezultata (Obvezen) messageData - 2. stolpec rezultata (Obvezen) messageType - 3. stolpec rezultata (Izbiren) pošiljatelj - 4. stolpec rezultata (Izbiren) operatorNames - 5. stolpec rezultata (Izbiren)
Slika 6 - Uporabnik avtomatskega odgovora baze podatkov Ozeki 10 SMS Gateway bo poslal SMS sporočila iz rezultatov.
PrimerOglejte si primer, kako filtrirati prvo besedo v vsakem dohodnem sporočilu in kako izvesti ločena dejanja za vsako. Dejanje je odvisno od tega, ali je beseda 'RED', 'BLUE' ali druga. Velike in male črke se upoštevajo enako. (Slika 7)
k^RED INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red' #Prvi filter preveri, ali je bila ključna beseda 'RED'. #Če je res, vstavi sporočilo v tabelo 'log' #in izbere 'Red is a good colour.' kot odzivno sporočilo. #Če ni res, gre na naslednji filter. k^BLUE SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue' #Drugi filter preveri, ali je bila ključna beseda 'BLUE'. #Če je res, izbere 'Blue is not the best option.' kot odzivno sporočilo. #Če ni res, gre na naslednji filter. k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default' #Tretji filter bo sprejel katero koli drugo ključno besedo. #Izbere 'There is no data for this keyword.' kot odzivno sporočilo.Slika 7 - Primer skripte SQL poizvedbe
Oglejte si SQL tabele na Sliki 8 in 9, da preučite naslednji primer:
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.Slika 8 - tabela 'autoreplymessage'
id sender message ---------- ------------------------------ ------------------------------------- 1 +3620123456 red Hello Autoreply Database User 2 +3670654321 red Good day to you RecipientSlika 9 - tabela 'log' za dohodna sporočila
More information
- Navodila za namestitev
- Ustvari postavitev podatkovne baze
- Vzorčna datoteka skripte
- Struktura skripta