mariadb async query

From Onset Developer Wiki
Revision as of 15:44, 26 January 2020 by REDRUM (talk | contribs) (→‎Example)
mariadb async query

Type: Function
Context: Server
Introduced: v1.0

NOTICE

This function is provided by the official MariaDB plugin.

Description

Executes a query in different parallel threads. Execution of order can not be guaranteed. Better use mariadb_query if you are unsure about it.

Syntax

mariadb_async_query(handle, query_str [, callback_func, callback_args...])

Parameters

  • handle
    Connection handle.
  • query_str
    The query to be executed.
  • callback_func (optional)
    The function that will be called when the query was executed.
  • callback_args (optional)
    Multiple arguments to pass to the callback_func.

Return Value

  • Returns true if the query was successfully queued.

Example

function GetCurrentPlayTime(player)
   CreateTimer(function(player)
       for k, v in pairs (GetAllPlayers()) do
           if GetAllPlayers() == true then
           local query = mariadb_prepare(sql, "SELECT * FROM accounts WHERE id = '?';",
           PlayerData[v].accountid)
           mariadb_async_query(sql, query, GetPlayerTime, v) 
           end
       end 
   end, 15000, player)
end
AddEvent("OnPackageStart", GetCurrentPlayTime)

function GetPlayerTime(player)
	local result = mariadb_get_assoc(1)
	local playtime = math.tointeger(result['time']) -- total time played on the server without session time.
	PlayerData[player].time = math.floor(PlayerData[player].time + (GetTimeSeconds() - PlayerData[player].play_time)) -- session play time.
	PlayerData[player].play_time = GetTimeSeconds()
	return PlayerData[player].time + playtime -- returns the total play time on the server.
end

See also

__EDIT_ME__