API reference
Full table of every native and forward exposed by mysql_samp. The plugin registers 55 natives and 1 forward .
Source of truth: include/mysql_samp.inc.in and src/lib.rs .
Constants
#define MYSQL_SAMP_VERSION "X.Y.Z"
The literal is regenerated by build.rs from CARGO_PKG_VERSION on every build, so the value shipped in mysql_samp.inc always tracks the version declared in Cargo.toml . This page does not hardcode the current number on purpose — check Cargo.toml or the include itself.
Connection options
Constant
Value
MYSQL_OPT_PORT
0
MYSQL_OPT_SSL
1
MYSQL_OPT_SSL_CA
2
MYSQL_OPT_CONNECT_TIMEOUT
3
MYSQL_OPT_AUTO_RECONNECT
4
Plugin error codes
Constant
Value
MYSQL_OK
0
MYSQL_ERROR_CONNECTION_FAILED
1
MYSQL_ERROR_INVALID_OPTIONS
2
MYSQL_ERROR_INVALID_CONNECTION
3
MYSQL_ERROR_PING_FAILED
4
MYSQL_ERROR_QUERY_FAILED
5
MYSQL_ERROR_NO_CACHE_ACTIVE
6
MYSQL_ERROR_INVALID_ORM
7
MYSQL_ERROR_ORM_KEY_NOT_SET
8
Log levels
Constant
Value
MYSQL_LOG_NONE
0
MYSQL_LOG_ERROR
1
MYSQL_LOG_WARNING
2
MYSQL_LOG_INFO
3
MYSQL_LOG_ALL
4
ORM error codes
Constant
Value
ORM_OK
0
ORM_NO_DATA
1
Natives
Options (3)
Native
Returns
Notes
mysql_options_new()
int
New options handle (>= 1)
mysql_options_set_int(handle, option, value)
bool
false if handle invalid, option unknown, or value out of range
mysql_options_set_str(handle, option, const value[])
bool
false if handle invalid or option not a string option
Connection (3)
Native
Returns
Notes
mysql_connect(const host[], const user[], const password[], const database[], options = 0)
int
Connection id (>= 1) or 0 on failure
mysql_close(connId)
bool
false if connId does not exist
mysql_status(connId, dest[], max_len = sizeof(dest))
bool
Writes a subset of SHOW GLOBAL STATUS into dest
Error (2)
Native
Returns
Notes
mysql_errno(connId = 0)
int
One of MYSQL_* codes. 0 reads global state
mysql_error(connId, dest[], max_len = sizeof(dest))
bool
Always true (writes the stored message; empty if no error)
Charset (2)
Native
Returns
Notes
mysql_set_charset(connId, const charset[])
bool
Runs SET NAMES '<charset>'
mysql_get_charset(connId, dest[], max_len = sizeof(dest))
bool
Reads @@character_set_connection
Utility (2)
Native
Returns
Notes
mysql_unprocessed_queries()
int
In-flight + pending-ordered count
mysql_log(log_level)
bool
Atomic; always true
Queries (5)
Native
Returns
Notes
mysql_query(connId, const query[], const callback[] = "", const format[] = "", {Float,_}:...)
bool
FIFO-ordered threaded query
mysql_pquery(connId, const query[], const callback[] = "", const format[] = "", {Float,_}:...)
bool
Parallel threaded query
mysql_tick()
bool
Drains the dispatch queue manually (back-compat only)
mysql_escape_string(const src[], dest[], max_len = sizeof(dest))
bool
Pure escape, no connection
mysql_format(connId, dest[], max_len, const format[], {Float,_}:...)
int
Bytes written into dest (truncated to max_len - 1 at a UTF-8 boundary)
Specifier
Type
Behavior
%d, %i
int
Decimal
%f
float
{:.4}
%s, %e
string
Escaped
%r
string
Raw, not escaped
%%
literal
%
Char
Pawn type
d, i
int
f
float
s
string
Anything else is counted as an unknown specifier and logged.
Cache — dimensions and values (12)
Native
Returns
Notes
cache_get_row_count()
int
-1 if no active cache
cache_get_field_count()
int
-1 if no active cache
cache_get_field_name(field_idx, dest[], max_len = sizeof(dest))
bool
false if field_idx is negative or out of range
cache_get_field_type(field_idx)
int
Raw mysql ColumnType byte, or -1
cache_get_value_index(row, col, dest[], max_len = sizeof(dest))
bool
String cell by index
cache_get_value_index_int(row, col)
int
Parsed int, 0 on miss
cache_get_value_index_float(row, col)
Float
Parsed float, 0.0 on miss
cache_get_value_name(row, const field_name[], dest[], max_len = sizeof(dest))
bool
Column name lookup is case-insensitive
cache_get_value_name_int(row, const field_name[])
int
Parsed int, 0 on miss
cache_get_value_name_float(row, const field_name[])
Float
Parsed float, 0.0 on miss
cache_is_value_index_null(row, col)
bool
true for NULL and for out-of-range
cache_is_value_name_null(row, const field_name[])
bool
true for NULL and for unknown column
Native
Returns
Notes
cache_affected_rows()
int
-1 if no active cache
cache_insert_id()
int
-1 if no active cache
cache_warning_count()
int
-1 if no active cache
cache_get_query_exec_time()
int
Milliseconds, -1 if no active cache
cache_get_query_string(dest[], max_len = sizeof(dest))
bool
The exact SQL sent to the server
Cache — persistence (6)
Native
Returns
Notes
cache_save()
int
Saved id (>= 1) or 0 if no active cache or limit (1024) hit
cache_delete(cache_id)
bool
Also clears the manual override if the deleted id was active
cache_set_active(cache_id)
bool
false if cache_id does not exist
cache_unset_active()
bool
false if there is no manual override
cache_is_any_active()
bool
Stack top or manual override
cache_is_valid(cache_id)
bool
Saved entry exists
ORM (15)
Native
Returns
Notes
orm_create(const table[], connId)
int
ORM id (>= 1) or 0 if connId invalid
orm_destroy(orm_id)
bool
false if orm_id does not exist
orm_errno(orm_id)
int
ORM_OK or ORM_NO_DATA. -1 if orm_id invalid. Only updated by orm_apply_cache
orm_select(orm_id, const callback[] = "", const format[] = "", {Float,_}:...)
bool
Threaded SELECT
orm_update(orm_id, const callback[] = "", const format[] = "", {Float,_}:...)
bool
Threaded UPDATE
orm_insert(orm_id, const callback[] = "", const format[] = "", {Float,_}:...)
bool
Threaded INSERT
orm_delete(orm_id, const callback[] = "", const format[] = "", {Float,_}:...)
bool
Threaded DELETE
orm_save(orm_id, const callback[] = "", const format[] = "", {Float,_}:...)
bool
INSERT if key is empty (0, 0.0, ""), UPDATE otherwise
orm_apply_cache(orm_id, row = 0)
bool
Sets orm_errno to ORM_NO_DATA if row is invalid
orm_addvar_int(orm_id, &var, const column_name[])
bool
Stores the AMX address of var
orm_addvar_float(orm_id, &Float:var, const column_name[])
bool
Stores the AMX address of var
orm_addvar_string(orm_id, var[], var_max_len, const column_name[])
bool
1 <= var_max_len <= 4096
orm_delvar(orm_id, const column_name[])
bool
false if no binding matched
orm_clear_vars(orm_id)
bool
Always true if orm_id exists
orm_setkey(orm_id, const column_name[])
bool
Always true if orm_id exists
Forwards (1)
Forward
Fired when
OnQueryError(errorid, const error[], const callback[], const query[], connId)
A threaded query (mysql_query / mysql_pquery and the ORM CRUD natives that wrap them) failed
Counts
Category
Count
Options
3
Connection
3
Error
2
Charset
2
Utility
2
Queries
5
Cache
23 (12 + 5 + 6)
ORM
15
Total natives
55
Forwards
1