Raised This Month: $51 Target: $400
 12% 

[SQL] MySQL Connector :: Remote Database (+Natives)


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
claudiuhks
Yam Inside®™℠
Join Date: Jan 2010
Location: Living Randomly
Old 09-28-2013 , 08:53   [SQL] MySQL Connector :: Remote Database (+Natives)
Reply With Quote #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(RowColumnBuffer[], 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(Mapsizeof(Map) - 1);

  
formatex(Buffersizeof(Buffer) - 1"INSERT INTO Maps VALUES ('%s', %d)"Mapget_systime());

  
RemDatabase_Query(Buffer);

  
register_concmd("amx_lastmaps""CmdLastMaps"ADMIN_MAP"- displays the last played maps");
}

public 
CmdLastMaps(ClientLevelCommand)
{
  if (!
cmd_access(ClientLevelCommand1))
  {
    return 
PLUGIN_HANDLED;
  }

  
console_print(Client"^nThe last played maps were:^n");

  static 
Count 0Iterator 0Map[32];

  
Count RemDatabase_Query("SELECT Name FROM Maps ORDER BY UnixTimeStamp DESC LIMIT 15"true);

  if (
Count)
  {
    for (
Iterator 0Iterator CountIterator++)
    {
      if (
Iterator == 0)
      {
        
RemDatabase_Get(Iterator0Mapsizeof(Map) - 1);

        
console_print(Client"%s (current)"Map);
      }

      else
      {
        
RemDatabase_Get(Iterator0Mapsizeof(Map) - 1);

        
console_print(ClientMap);
      }
    }
  }

  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.
claudiuhks is offline
Send a message via MSN to claudiuhks Send a message via Yahoo to claudiuhks Send a message via Skype™ to claudiuhks
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 20:39.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode