← Scripts y librerías
PatrickGTR/MySQL-Prepared-Statements
Prepared Statement implementation for PAWN MySQL
Librería★ 27actualizado oct 2021Sin licenciaPawnsampctl
Abrir en GitHubEste repositorio no tiene archivo de licencia. Se puede leer, pero eso por sí solo no da permiso para reutilizarlo.
Instalar con sampctl
sampctl package install PatrickGTR/MySQL-Prepared-Statements
Ejecútalo en la carpeta de tu proyecto. sampctl descarga el paquete y sus dependencias.
Depende de 3 paquetes
- sampctl/samp-stdlibno está en este directorio
- pblueg/sa-mp-mysqlno está en este directorio
- pawn-lang/YSI-Includes★ 226
Usado por 3 paquetes
README.md
Installation
Simply install to your project:
sampctl package install PatrickGTR/MySQL-Prepared-Statements
Include in your code and begin using the library:
#include <mysql_prepared>
Usage
Functions
MySQL_StatementClose(Statement:statement)
MySQL_PrepareStatement(MySQL:handle, const query[])
MySQL_Statement_RowsLeft(&Statement:statement)
MySQL_Statement_FetchRow(Statement:statement)
Writing
MySQL_Bind(Statement:statement, param, const str[])
MySQL_BindInt(Statement:statement, param, value)
MySQL_BindFloat(Statement:statement, param, Float:value)
MySQL_BindPlayerName(Statement:statement, param, playerid)
MySQL_BindPlayerIp(Statement:statement, param, playerid)
Reading
MySQL_BindResult(Statement:statement, field, const result[], len = sizeof(result))
MySQL_BindResultInt(Statement:statement, field, &result)
MySQL_BindResultFloat(Statement:statement, field, &Float:result)
Executing
MySQL_ExecuteThreaded(Statement:statement, const callback[] = "", const fmat[] = "", {Float,_}:...)
MySQL_ExecuteParallel(Statement:statement, const callback[] = "", const fmat[] = "", {Float,_}:...)
MySQL_ExecuteThreaded_Inline(Statement:statement, Func:callback<>)
MySQL_ExecuteParallel_Inline(Statement:statement, Func:callback<>)
Testing
To test, simply run the package:
sampctl package run
Examples
Reading Data (Using inline)
new stmt_readloop = MySQL_PrepareStatement(MySQLHandle, "SELECT * FROM spawns");
// Run Threaded on statement
inline OnSpawnsLoad() {
new
spawnID,
Float:spawnX,
Float:spawnY,
Float:spawnZ,
Float:spawnA;
MySQL_BindResultInt(stmt_readloop, 0, spawnID);
MySQL_BindResultFloat(stmt_readloop, 1, spawnX);
MySQL_BindResultFloat(stmt_readloop, 2, spawnY);
MySQL_BindResultFloat(stmt_readloop, 3, spawnZ);
MySQL_BindResultFloat(stmt_readloop, 4, spawnA);
while(MySQL_Statement_FetchRow(stmt_readloop)) {
printf("%i, %.3f, %.3f, %.3f", spawnID, spawnX, spawnY, spawnZ, spawnA);
}
MySQL_StatementClose(stmt_readloop);
}
MySQL_ExecuteThreaded_Inline(stmt_readloop, using inline OnSpawnsLoad);
Writing Data
new Statement:stmt_insert = MySQL_PrepareStatement(MySQLHandle, "INSERT INTO accounts(username, password, salt, money, kills, deaths) VALUES (?,?,?,?,?,?)");
// Arrow values in questions (first 0, second is 1, etc ...)
MySQL_Bind(stmt_insert, 0 , "patrickgtr");
MySQL_Bind(stmt_insert, 1 , "patrickgtrpassword");
MySQL_Bind(stmt_insert, 2 , "pgtrhash");
MySQL_BindInt(stmt_insert, 3, 100);
MySQL_BindInt(stmt_insert, 4, 200);
MySQL_BindInt(stmt_insert, 5, 300);
MySQL_ExecuteParallel(stmt_insert);
MySQL_StatementClose(stmt_insert);
Full account system example can be found here
Special Thanks to:
| Username | |
|---|---|
| Southclaws | sampctl |
| Y_Less / JustMichael | YSI / Constructive feedback |
| Dayvison | Initial idea |
| Slice | Base code of sqlite improved |
| maddinat0r / BlueG | MySQL Plugin |
mysqlpawnpawn-packagepreparedsa-mpsampctlstmt
Esta página se genera con lo que GitHub publica sobre el repositorio. samp.directory no aloja el código. Informar de un problema con esta ficha