← Скрипты и библиотеки
PatrickGTR/MySQL-Prepared-Statements
Prepared Statement implementation for PAWN MySQL
Библиотека★ 27обновлён окт. 2021 г.Без лицензииPawnsampctl
Открыть на GitHubВ этом репозитории нет файла лицензии. Код открыт для чтения, но само по себе это не даёт права использовать его.
Установка через sampctl
sampctl package install PatrickGTR/MySQL-Prepared-Statements
Выполните в папке проекта. sampctl скачает пакет и его зависимости.
Зависит от 3 пакетов
- sampctl/samp-stdlibнет в этом каталоге
- pblueg/sa-mp-mysqlнет в этом каталоге
- pawn-lang/YSI-Includes★ 226
Используется в 3 пакетах
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
Страница собрана из того, что GitHub публикует о репозитории. samp.directory не хранит этот код. Сообщить о проблеме с этой записью