PawnPlus MySQL

Započeo Crownshot, Jun 21, 2020, 15:10:56 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

PawnPlus MySQL

Šta je to PawnPlus MySQL?
S' ozbirom na to da ste naučili da koristite dinamične stringove u PP-u, vreme je da naučite i kako da te dinamične stringove pišete, odnosno čitate u MySQL-u koristeći ovaj inklud. Ovaj inklud na neki način predstavlja PawnPlus ''dodatke'' za sami MySQL plugin kreiran od strane pBlueG-a. Kreator ovog inkluda jeste Adrian Graber, poznatiji i kao AGraber.

Kako ga instalirati?
Instaliranje ovog inkluda se obavlja na jedan vrlo lak način. Ako ste korisnik sampctl-a (a verujem da više od pola vas ovde ni ne zna šta je sampctl) instaliraćete ga sa

sampctl package install AGraber/pawn-plus-mysql
A ukoliko isti ne koristite jednostavno idite ovde i skinite ga i ubacite u vaš include folder.
Kada to završite, u mod ga inkludate sa
#include <pp-mysql>
i sada ste spremni za korišćenje istog (ukoliko naravno već imate inkludan PawnPlus i MySQL u modu).

Kako ga koristiti?
Kao što svi znamo, mysql pomoću pquery-a i tquery-a selektuje/briše/dodaje/apdejtuje podatke u tabelama. E sad, ta dva query-a imaju svoj dodatak ''_s'' pomoću kojeg ''prihvataju'' PP dinamične stringove (naprimer: mysql_tquery_s). Takođe, novi ''član'' dolazi u ''porodicu'' ovih native-a, a to je mysql_aquery_s, koji poziva task koji će biti uspešan ako je i sam query uspešan, odnosno neuspešan ako postoji greška za vreme izvršenja query-a.
E sad, pre nego što i pređemo na primere, postoji jedna važna stvar. Po defaultu, mysql_aquery_s će da ''piggybackuje'' mysql_tquery ako je on korišćen. Vi ovo možete da sprečite i da koristite mysql_tquery tako što ćete vrednost parametra ''parallel'' staviti na true, ili na drugi način tako što ćete MYSQL_ASYNC_DEFAULT_PARALLEL definisati na željenu vrednost.

Sad konačno i primeri.
Primer kako biste koristili PP stringove u native-ima:
[pawn]public OnPlayerTookAllCandies(playerid) {
   mysql_tquery_s(DatabaseHandle, @ ("UPDATE player SET took_candies = UNIX_TIMESTAMP() WHERE id = ") % GetPlayerDBID(playerid));
}[/pawn]
U slučaju task-based asinhronih query-a, recimo da želite da učitate igrača iz baze:
[pawn]LoadPlayerData(playerid) {
   await mysql_aquery_s(DatabaseHandle, @ ("SELECT * FROM player WHERE id = ") % GetPlayerDBID(playerid), .parallel = false);
   // Posle ovoga možete da koristite cache funkcije, kao recimo ova dole
   cache_get_value_name_float(0, "health", PlayerHealth[playerid]);
   // Ostali kodovi
}[/pawn]
Primetili ste statement ''await'' u kodu i nije vam jasno šta on znači, zar ne? :D
E pa on je u sastavu PawnPlus-a i koristi se kako bi se ''pauziralo'' izvršenje skripte i sačekalo (sama reč kaže - await) izvršenje ovog taska.
Taj keyword je alias native-a ''task_await''.

Kraj tutorijala
Došli smo do kraja tutorijala, nadam se da ćete naučiti kako se koristi PawnPlus MySQL, a ako vam nešto nije jasno ili vas interesuje možete mi pisati na PM, da pogledate AGraberov i Illidanov github, a možete i da otvorite include pomoću vašeg IDE i pročitate ga.
Poslednja Izmena: Jun 21, 2020, 15:14:08 POSLE PODNE od Crownshot
My tutorials: PawnPlus MySQL, y_colours

Postoji mali problem u ovome, forum me malo zajebava.
Umesto et (majmunče po naški) znaka u kodu on mi stavlja ovo member 1996, zamenite samo to ako koristite i dobićete kod koji sam hteo da napišem....
Poslednja Izmena: Jun 21, 2020, 15:19:26 POSLE PODNE od Crownshot
My tutorials: PawnPlus MySQL, y_colours

Lijepo objasnjeno ! Svaka cast !  8)
Facebook : Morelli Samper

Svaka cast, odlican Tutorial
10/10