MySQL Plugin R5

Post Reply
RoberTo
Global Moderator
Global Moderator
Posts: 1380
Joined: Sun Dec 26, 2010 9:31 pm
Jucator SA:MP ?: Da
Nick:: RoberTo
Jucator CS ?: Da
Location: Craiova
Contact:

MySQL Plugin R5

Post by RoberTo »

[center]MySQL Plugin R5[/center]


Original post: AICI

Code: Select all

17/07/2011:
- mysql_format() a fost adaugata)
09/07/2011:
- buguri legate de query rezolvate
Cum il instalezi:
  • Windows: Copiaza mysql.dll in folderul /plugins si libmysql.dll folderul serverului tau. Apoi adauga in server.cfg 'plugins mysql'
  • Linux: Copiaza mysql.so in folderul /plugins si adauga in server.cfg 'plugins mysql.so'
PAWN Scripting: (a_mysql.inc)
  • Functii Native: (Toti parametrii din parantezele patrate sunt optionalel)
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_affected_rows"]mysql_affected_rows[/url]( [connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_close"]mysql_close[/url]( [connectionHandle = 1] )
      • Asigura-te ca "chemi" acesta in OnGameModeExit()/OnFilterscriptExit()
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_connect"]mysql_connect[/url]( const host[], const user[], const database[], const password[] )
      • Returns a connection handle you can use for multiple connections

Code: Select all

//acest exemplu demonstreaza cum sa folosesti mai multe conexiuni
new SQLPtr[2]; //global var
...
Function()
{
   SQLPtr[0] = mysql_connect(...);
   SQLPtr[1] = mysql_connect(...);
   mysql_query("SELECT a FROM table WHERE foo = 'bar'",(-1),(-1),SQLPtr[0]); //select query in the first DB
   mysql_query("UPDATE b SET bar = 'foo'",(-1),(-1),SQLPtr[1]); //update query in the second DB
   mysql_close(SQLPtr[1]); //close the 2nd DB connection, the other connection still exists
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_debug"]mysql_debug[/url]( activat = 1 )
      • Activeaza-l si creaza un fisier log cu numele mysql.log
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_errno"]mysql_errno[/url]( [connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_int"]mysql_fetch_int[/url]( [connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_field_row"]mysql_fetch_field_row[/url]( string[], const fieldname[] [,connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_float"]mysql_fetch_float[/url]( &Float:result [,connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_row_format"]mysql_fetch_row_format[/url]( string[], const delimiter[] = "|" [,connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_field_count"]mysql_field_count[/url]( [connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_format"]mysql_format[/url]( [connectionHandle = 1] )
      [pawn]Supoerta: (%2.f/%10.s nu sunt suportate)
      - %e (scapa de date direct,fara a fi nevoie de mysql_escape_string() inainte,dar nu da si query!)
      - %s (string)
      - %d / %i (integer)
      - %f (float)

      new szDestination[100];
      mysql_format(connectionHandle, szDestination, "SELECT * FROM `%s` WHERE `bar` = '%e' AND `foobar` = '%f' LIMIT %d", "foobar", "escape'me\"please", 1.2345, 1337);
      //variabila 'szDestination' contine stringul fara caractere care ar purea face SQL INJECTION
      mysql_query(szDestination);[/pawn]
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_free_result"]mysql_free_result[/url]( [connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_get_charset"]mysql_get_charset[/url]( destination[] [,connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_insert_id"]mysql_insert_id[/url]( [connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_num_rows"]mysql_num_rows[/url]( [connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_num_fields"]mysql_num_fields[/url]( [connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_ping"]mysql_ping[/url]( [connectionHandle = 1] )
      • Adauga return 1; daca conexiunea este activa, daca nu adauga return -1;
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_query"]mysql_query[/url]( query[] [,resultid = (-1), extraid = (-1), connectionHandle = 1] )
      • Setting result id to something else than (-1), triggers the OnQueryFinish callback
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_query_callback"]mysql_query_callback[/url]( index, query[], callback[] [, extraid = (-1), connectionHandle = 1] )
      • Allows you to create custom callbacks for better structured coding (See sample_script.pwn below)
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_real_escape_string"]mysql_real_escape_string[/url]( const source[], destination[] [,connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_reconnect"]mysql_reconnect[/url]( [connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_reload"]mysql_reload[/url]( [connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_retrieve_row"]mysql_retrieve_row[/url]( [connectionHandle = 1] )
      • Returns true (1) incase there are still rows to retrieve, else false (0)
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_set_charset"]mysql_set_charset[/url]( charset[] [,connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_stat"]mysql_stat[/url]( const destination[] [,connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_store_result"]mysql_store_result[/url]( [connectionHandle = 1] )
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#mysql_warning_count"]mysql_warning_count[/url]( [connectionHandle = 1] )
  • Pawn Callback:
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#OnQueryFinish"]OnQueryFinish[/url]( query[], resultid, extraid, connectionHandle ) - Sample usage (updated)
      • This is just called if you used the 'resultid' parameter in the query function
    • [url=http://"http://wiki.sa-mp.com/wiki/MySQL#OnQueryError"]OnQueryError[/url]( errorid, error[], resultid, extraid, callback[], query[], connectionHandle )

Compiling Notes:
  • Windows: Deschide fisierul de proiect cu Microsoft Visual C++ si click pe bunonul build. (MySQL Visual Studio/C++ este necesar)
  • Linux: Instaleaza gcc, gpp & mysql-client si scrie "make" in fisierele sursa.
Download:
[center]Daca nu intelegi ceva, posteaza aici.[/center]

Stiu ca nu am tradus tot dar nu am avut timp. O sa-l traduc complet. ;)

[hr]
Atentie:
Fiti foarte atenti la SQL Injection,sunt multi rau-voitori.
https://docs.google.com/Doc?docid=0AZNl ... 3723976314
Vrei un host de calitate si serios pentru serverul tau?
VEZI SERVERE HOSTATE LA NOI : http://www.zonek.ro/index.php?option=com_lgsl&Itemid=5
0763.55.9997 Comanda ACUMA OFERTA LIMITATA
Y: zonek_telecom | http://www.zonek.ro
- Nu te baga in pat nervos, stai treaz si "lupta". http://forum.zonek.ro inscrie-te si vezi cum se manifesta...
- Pentru schimb de Linkuri Intra AICi : linkex
Image
- Pentru cereri de Parteneriate prin Bannere Intra AICI
Image
Image
Post Reply

Return to “Plugins”