Struktura SQL upitnog skripta
Pomaknite se dolje kako biste vidjeli strukturu SQL upitnog skripta. Možete generirati skriptnu datoteku za svakog korisnika Autoreply baze podataka, koja je sposobna slati SMS poruke ako slijede skriptu. Datoteka radi sa svakom dolaznom porukom i odabire odlazne poruke prema filtru.
Uvod
Pogledajte skriptnu datoteku. Možete vidjeti da je podijeljena u odjeljke odvojene praznim redovima (Slika 1). Možete napisati onoliko odjeljaka koliko želite bez maksimalnog ograničenja. Odjeljci se čitaju uzastopno i prvi odjeljak koji odgovara dolaznoj SMS poruci bit će korišten za kreiranje odgovora.
Prvi red svakog odjeljka je uvjet filtriranja, a sljedeći jedan ili više SQL izraza nazivaju se akcija. SQL SELECT izrazi mogu vratiti jednu ili više odgovarajućih poruka. Ako uvjet filtriranja odgovara podacima dolazne poruke, pozivaju se izrazi koji se izvršavaju dok se ne nađe prazan red. U tom slučaju neće provjeravati druge odjeljke.
Uvjet
Svaki odjeljak počinje s uvjetom koji se sastoji od jednog retka podijeljenog u dva dijela (Slika 2)
Prvi dio je odabirnik cilja za podudaranje, jedan znak koji određuje koji dio dolazne poruke treba filtrirati (Slika 3). FONT style="font-size:15px;">Možete odabrati znak odabirnika cilja za podudaranje iz sljedećih opcija:
# Opcije uvjeta: # n - ako se telefonski broj pošiljatelja podudara s uzorkom # m - ako se tekst poruke podudara s uzorkom # k - ako se ključna riječ podudara s uzorkom. (Ključna riječ je prva riječ # poruke. Ključna riječ se pretvara u velika slova)Slika 3 - Odabirnici cilja za podudaranje
Drugi dio je uzorak za podudaranje koji je filtar znakova (Slika 4). Ovi primjeri uzoraka za podudaranje rade na 'm' cilju poruke:
m.* - podudara se s bilo kojim tekstualnim porukama m^abc.* - podudara se ako tekstualna poruka počinje s 'abc' ili 'ABC' m.*abc.* - podudara se ako tekstualna poruka sadrži 'abc' ili 'ABC'Slika 4 - Primjeri uzoraka za podudaranje
Ovdje možete pronaći tutorial o regularnim izrazima za dostupne uzorke podudaranja.
Akcija
Svaki uvjet filtriranja praćen je akcijom koja se sastoji od SQL izraza.
Možete slati SMS poruke samo s SQL SELECT upitima, ali možete izvršavati i INSERT i UPDATE izraze. Imajte na umu da je 1. parametar rezultata SELECT upita primatelj poruke koja će biti poslana, dok je 2. parametar sama poruka. Na Slici 5 možete vidjeti nekoliko primjera.
k^CRVENO INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='crveno' k^PLAVO SELECT '$sender',msg FROM autoreplymessage WHERE keyword='plavo' k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='zadano'Slika 5 - Primjeri SQL izraza gdje je primatelj '$sender'
Sljedeće riječi se zamjenjuju u SQL izrazima:
Riječi | Vrijednost | $originator | Telefonski broj s kojeg je poruka poslana. |
---|---|
$sender | =$originator ($sender je drugo ime za $originator.) |
$recipient | Telefonski broj na koji je poruka poslana. |
$receiver | =$recipient ($receiver je drugo ime za $recipient.) |
$messagedata | Tekst poruke. |
$keyword | Prva riječ u poruci. Ta riječ se naziva ključna riječ. |
$after | Preostali tekst nakon ključne riječi. |
$senttime | Vremenska oznaka koja pokazuje kada je poruka poslana. |
$receivedtime | Vremenska oznaka koja pokazuje kada je poruka primljena. |
$messagetype | Tip poruke, koji je u većini slučajeva 'SMS:TEXT'. |
$id | Jedinstveni niz. Identificira svaku poruku u Ozeki SMS Gateway. |
$operator | Naziv pružatelja usluge. Prima poruku u Ozeki SMS Gateway. |
$1 | Prva riječ u poruci. |
$2 | Druga riječ u poruci. |
$3 | Treća riječ u poruci, itd... |
Svaki SQL izraz se izvršava red po red dok interpreter ne dođe do praznog retka, gdje se konačno zaustavlja.
(Savjet: Sadržaj odgovorne poruke možete dobiti samo korištenjem SELECT izraza.)
Rezultati SELECT SQL upita sadrže poruke koje treba proslijediti ili odgovoriti. Broj redaka u rezultatima određuje broj poruka koje će biti poslane. (Slika 6)
Rezultati mogu sadržavati sljedeće parametre:recipient - Prvi stupac rezultata (Obvezno) messageData - Drugi stupac rezultata (Obvezno) messageType - Treći stupac rezultata (Opcionalno) sender - Četvrti stupac rezultata (Opcionalno) operatorNames - Peti stupac rezultata (Opcionalno)
Slika 6 - Korisnik Ozeki 10 SMS Gateway Autoreply baze podataka šalje SMS poruke iz rezultata.
Primjer
Pogledajte primjer kako filtrirati prvu riječ u svakoj dolaznoj poruci i kako izvršiti odvojene radnje za svaku. Radnja ovisi o tome je li riječ 'CRVENO', 'PLAVO' ili nešto drugo. Velika i mala slova se tretiraju jednako. (Slika 7)
k^CRVENO INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='crveno' #Prvi filtar provjerava je li riječ 'CRVENO' bila ključna riječ. #Ako je točno, INSERT-uje poruku u tablicu 'log' #i SELECT-a 'Crvena je dobra boja.' kao odgovor. #Ako nije, prelazi na sljedeći filtar. k^PLAVO SELECT '$sender',msg FROM autoreplymessage WHERE keyword='plavo' #Drugi filtar provjerava je li riječ 'PLAVO' bila ključna riječ. #Ako je točno, SELECT-a 'Plava nije najbolja opcija.' kao odgovor. #Ako nije, prelazi na sljedeći filtar. k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default' #Treći filtar prihvaća bilo koju drugu ključnu riječ. #SELECT-a 'Nema podataka za ovu ključnu riječ.' kao odgovor.Slika 7 - Primjer SQL upita
Pogledajte SQL tablice na Slici 8 i 9 kako biste ispitali sljedeći primjer:
id keyword msg ---------- ------------------------------ ------------------------------------- 1 default Nema podataka za ovu ključnu riječ. 2 crveno Crvena je dobra boja. 3 plavo Plava nije najbolja opcija.Slika 8 - Tablica 'autoreplymessage'
id sender message ---------- ------------------------------ ------------------------------------- 1 +3620123456 crveno Pozdrav Autoreply korisniče 2 +3670654321 crveno Dobar dan primaocuSlika 9 - Tablica 'log' za dolazne poruke
More information
- Vodič za instalaciju
- Izrada izgleda baze podataka
- Primjer skriptne datoteke
- Struktura skripte