Yam Inside®™℠
Join Date: Jan 2010
Location: Living Randomly
|
09-28-2013
, 08:53
[SQL] MySQL Connector :: Remote Database (+Natives)
|
#1
|
- MySQL Connector :: Remote Database -
Download
View C++ Source Code
Visit MySQL Page
This extension's purpose is to make the MySQL scripting more easier for anyone. Just look at the INC file which is listed below.
This extension works only with a MySQL server.
PHP Code:
/** Does a query. * * @param Query The query to execute. * @param Select Set it true whether the query contains "SELECT" word. * * @return The number of rows selected, if any. */ native /* unsigned int */ RemDatabase_Query(Query[], bool:Select = false);
/** Retrieves a result. * * @param Row The row to pick result from. * @param Column The column to pick result from. * @param Buffer The variable to store result in. * @param Size The variable that represents the buffer size. * * @return The result converted as integer. */ native /* signed int */ RemDatabase_Get(Row, Column, Buffer[], Size);
/** Makes a string safe. * * @param String The string to make safe. * @param Character The character to replace bad characters as '\\', '`', '"' or '\''. * * @return True if success or false if error. */ native /* bool */ bool:RemDatabase_Safe(String[], Character = '*');
An example of plugin may be the one listed below.
PHP Code:
#include amxmodx #include amxmisc #include remote_database
public plugin_init() { register_plugin("Last Played Maps", "1.0", "Hattrick (Claudiu HKS)");
RemDatabase_Query("CREATE TABLE IF NOT EXISTS Maps (Name TEXT, UnixTimeStamp NUMERIC)");
new Map[32], Buffer[256]; get_mapname(Map, sizeof(Map) - 1);
formatex(Buffer, sizeof(Buffer) - 1, "INSERT INTO Maps VALUES ('%s', %d)", Map, get_systime());
RemDatabase_Query(Buffer);
register_concmd("amx_lastmaps", "CmdLastMaps", ADMIN_MAP, "- displays the last played maps"); }
public CmdLastMaps(Client, Level, Command) { if (!cmd_access(Client, Level, Command, 1)) { return PLUGIN_HANDLED; }
console_print(Client, "^nThe last played maps were:^n");
static Count = 0, Iterator = 0, Map[32];
Count = RemDatabase_Query("SELECT Name FROM Maps ORDER BY UnixTimeStamp DESC LIMIT 15", true);
if (Count) { for (Iterator = 0; Iterator < Count; Iterator++) { if (Iterator == 0) { RemDatabase_Get(Iterator, 0, Map, sizeof(Map) - 1);
console_print(Client, "%s (current)", Map); }
else { RemDatabase_Get(Iterator, 0, Map, sizeof(Map) - 1);
console_print(Client, Map); } } }
else { /* I can't believe I reached here... */ console_print(Client, "Unfortunately, there were no maps played yet."); }
return PLUGIN_HANDLED; }
Other information declared below.
Edit and upload RemoteDatabaseInformation.ini to $(MODDIR)/addons/amxmodx/configs.
How to use RemDatabase_Get native?
For example, if you execute the next query while having 5,000 rows into your table: SELECT Apples, Oranges FROM Fruits LIMIT 2
There will be two rows selected, because LIMIT is 2.
There will be two columns selected, because you select both Apples and Oranges.
So, you will use RemDatabase_Get with Row parameter 0 and then with Row parameter 1.
Also, with Column parameter 0 and then with Column parameter 1.
__________________
Last edited by claudiuhks; 03-16-2014 at 13:02.
|
|