Skip to content
PawnPlus extensions and helpers for the MySQL plugin
Branch: master
Clone or download
IllidanS4 and AGraber delay setting the error so it can be awaited (#1)
Setting the error directly will delete the task; 0 ms wait is sufficient.
Latest commit c66a346 Jul 8, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE Add license Apr 17, 2019 Add missing closing quote to example in Apr 17, 2019
pawn.json Initial commit Apr 17, 2019 sampctl package release: 1.0.2 Apr 18, 2019 delay setting the error so it can be awaited (#1) Jul 8, 2019



PawnPlus extensions and helpers for the MySQL plugin


Simply install to your project:

sampctl package install AGraber/pawn-plus-mysql

Include in your code and begin using the library:

#include <pp-mysql>

It is recommended that you set a PawnPlus version explicitely on your pawn.json (preferibly the latest) to avoid always downloading the latest one.

If you don't use sampctl, just download the include and drop it to your includes/ folder, and then download the PawnPlus plugin and include from here.

While you're on it and if you don't use PawnPlus yet, you should check it out!


All existing mysql_[t/p]query now have a variant that accepts PawnPlus strings, ending with _s (for example, mysql_tquery_s).

In addition, a new member arrives into the family of these natives: mysql_aquery[_s], which returns a task that will be set as completed when the query completes successfully, or fault when there's an error during its execution.

Note that mysql_aquery[_s] will piggyback on mysql_tquery by default. You can override this and use mysql_tquery by setting the parallel parameter at the end to true, or explicitly change this default value by defining MYSQL_ASYNC_DEFAULT_PARALLEL to you desired value.


Using PawnPlus strings on natives

public OnPlayerTookAllCandies(playerid)
	mysql_tquery_s(DatabaseHandle, @("UPDATE player SET took_candies = UNIX_TIMESTAMP() WHERE id = ") % GetPlayerDBID(playerid));

Task-based asynchronous queries:

	await mysql_aquery_s(DatabaseHandle, @("SELECT * FROM player WHERE id = ") % GetPlayerDBID(playerid), .parallel = false);
	// Cache functions will be available after this
	cache_get_value_name_float(0, "health", PlayerHealth[playerid]);
	// ...
You can’t perform that action at this time.