Az SQL lekérdezés szkript szerkezete
Görgessen le, hogy láthassa az SQL lekérdezés szkript szerkezetét. Minden Autoreply Adatbázis Felhasználónak renderelhet egy szkriptfájlt, amely képes SMS üzenetek küldésére, ha követik a szkriptet. A fájl minden bejövő üzenettel működik, és a szűrő alapján kiválasztja a kimenő üzeneteket.
Bevezetés
Nézzük meg a szkriptfájlt. Látható, hogy szakaszokra van osztva, üres sorokkal elválasztva (1. ábra). Tetszőleges számú szakaszt írhat, nincs maximális korlát. A szakaszokat sorrendben olvassa, és az első olyan szakaszt használja, amely illeszkedik a bejövő SMS-re, hogy létrehozza a válasz SMS üzenetet.
Minden szakasz első sora a szűrőfeltétel, a következő egy vagy több SQL utasítás pedig a művelet. Az SQL SELECT utasítások egy vagy több válaszüzenetet adhatnak vissza. Ha a szűrőfeltétel illeszkedik a bejövő üzenet adataira, akkor végrehajtja az utasításokat, amíg üres sort nem talál. Ebben az esetben nem ellenőrzi a többi szakaszt.
Feltétel
Minden szakasz egy feltétellel kezdődik, amely egyetlen sorból áll, két részre osztva (2. ábra)
Az első rész a illesztési cél választó, egyetlen karakter, amely meghatározza, hogy a bejövő üzenet melyik részét kell szűrni (3. ábra). FONT style="font-size:15px;">Az alábbi lehetőségek közül választhat illesztési cél választó karaktert:
# Feltétel opciók: # n - ha a feladó telefonszáma illeszkedik a mintára # m - ha az üzenet szövege illeszkedik a mintára # k - ha a kulcsszó illeszkedik a mintára. (A kulcsszó az üzenet első szava. # A kulcsszó nagybetűssé alakul)3. ábra - Illesztési cél választók
A második rész a illesztési minta, amely a karakteres szűrő (4. ábra). Ezek az illesztési minta példák az 'm' üzenet célra vonatkoznak:
m.* - illeszkedik bármilyen szöveges üzenetre m^abc.* - illeszkedik, ha a szöveges üzenet 'abc' vagy 'ABC' kezdettel rendelkezik m.*abc.* - illeszkedik, ha a szöveges üzenet tartalmaz 'abc' vagy 'ABC' szöveget4. ábra - Illesztési minta példák
Itt található egy reguláris kifejezések oktatóanyag az elérhető illesztési mintákhoz.
Művelet
Minden feltételszűrőt egy művelet követ, amely SQL utasításokból áll.
Csak SQL SELECT lekérdezésekkel küldhet SMS üzeneteket, de INSERT és UPDATE utasításokat is futtathat. Ne feledje, hogy a SELECT eredményhalmaz első paramétere a küldendő üzenet címzettje, míg a második paraméter maga az üzenet. Az 5. ábrán látható néhány példa.
k^PIROS INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='piros' k^KÉK SELECT '$sender',msg FROM autoreplymessage WHERE keyword='kék' k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='alapértelmezett'5. ábra - SQL utasítás példák, ahol a címzett a '$sender'
A következő szavak kerülnek cserére az SQL utasításokban:
Szavak | Érték | $originator | Az a telefonszám, amelyről az üzenet érkezett. |
---|---|
$sender | =$originator (A $sender a $originator másik neve.) |
$recipient | Az a telefonszám, amelyre az üzenet érkezett. |
$receiver | =$recipient (A $receiver a $recipient másik neve.) |
$messagedata | Az üzenet szövege. |
$keyword | Az üzenet első szava. Ezt a szót kulcsszónak hívják. |
$after | A kulcsszó utáni maradék szöveg. |
$senttime | Egy időbélyeg, amely megmutatja, mikor küldték az üzenetet. |
$receivedtime | Egy időbélyeg, amely megmutatja, mikor érkezett az üzenet. |
$messagetype | Az üzenet típusa, amely legtöbbször 'SMS:TEXT'. |
$id | Egy egyedi azonosító. Az Ozeki SMS Gateway-ben minden üzenetet azonosít. |
$operator | A szolgáltató neve. Az Ozeki SMS Gateway-ben fogadja az üzenetet. |
$1 | Az üzenet első szava. |
$2 | Az üzenet második szava. |
$3 | Az üzenet harmadik szava, stb... |
Minden SQL utasítás soronként kerül végrehajtásra, amíg az értelmező el nem ér egy üres sort, ahol végül megáll.
(Tipp: Csak SELECT utasításokkal kaphat válaszüzenet tartalmat.)
VálaszA SELECT SQL utasítás eredményhalmaza tartalmazza a továbbítandó vagy megválaszolandó üzeneteket. Az eredményhalmazban található sorok száma határozza meg a küldendő üzenetek számát. (6. ábra)
Az eredményhalmaz a következő paramétereket tartalmazhatja:recipient - Az eredményhalmaz 1. oszlopa (Kötelező) messageData - Az eredményhalmaz 2. oszlopa (Kötelező) messageType - Az eredményhalmaz 3. oszlopa (Opcionális) sender - Az eredményhalmaz 4. oszlopa (Opcionális) operatorNames - Az eredményhalmaz 5. oszlopa (Opcionális)
6. ábra - Az Ozeki 10 SMS Gateway Autoreply Database User SMS üzeneteket küld az eredmények alapján.
Példa
Nézzünk meg egy példát arra, hogyan szűrhetjük ki az első szót minden bejövő üzenetből és hogyan végezhetünk különböző műveleteket mindegyiken. A művelet attól függ, hogy a szó 'PIROS', 'KÉK' vagy más. A kis- és nagybetűket egyformán kezeljük. (7. ábra)
k^PIROS INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='piros' #Az első szűrő ellenőrzi, hogy a 'PIROS' szó volt-e a kulcsszó. #Ha igaz, beszúrja az üzenetet a 'log' táblába #és kiválasztja a 'A piros jó szín.' válaszüzenetet. #Ha hamis, a következő szűrőhöz lép. k^KÉK SELECT '$sender',msg FROM autoreplymessage WHERE keyword='kék' #A második szűrő ellenőrzi, hogy a 'KÉK' szó volt-e a kulcsszó. #Ha igaz, kiválasztja a 'A kék nem a legjobb választás.' válaszüzenetet. #Ha hamis, a következő szűrőhöz lép. k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='alapértelmezett' #A harmadik szűrő bármilyen más kulcsszót elfogad. #Kiválasztja a 'Nincs adat ehhez a kulcsszóhoz.' válaszüzenetet.7. ábra - SQL lekérdezési szkript példa
Nézzük meg a 8. ábrán és 9. ábrán található SQL táblákat a következő példa megértéséhez:
id keyword msg ---------- ------------------------------ ------------------------------------- 1 alapértelmezett Nincs adat ehhez a kulcsszóhoz. 2 piros A piros jó szín. 3 kék A kék nem a legjobb választás.8. ábra - 'autoreplymessage' tábla
id sender message ---------- ------------------------------ ------------------------------------- 1 +3620123456 piros Helló Autoreply Database User 2 +3670654321 piros Szép napot kívánok Kedves Címzett9. ábra - 'log' tábla a bejövő üzenetekhez
More information
- Telepítési útmutató
- Adatbázis elrendezés létrehozása
- Minta szkriptfájl
- Szkript szerkezet