GlobalStrike-Community
Doriți să reacționați la acest mesaj? Creați un cont în câteva clickuri sau conectați-vă pentru a continua.

GlobalStrike-Community


 
AcasaPortal*GalerieCăutareUltimele imaginiÎnregistrareConectare

 

 MySQL Plugin R7

In jos 
AutorMesaj
Petre
SYSOPS
SYSOPS



Leu Mesaje : 150
Puncte : 5785
Reputatie : 0
Data nasterii : 24/07/1997
Data de inscriere : 23/12/2012
Varsta : 26
Localizare : Sarmasag
Joburi/Distractii : Scripting , FOtbal
Stare de spirit : Buna

MySQL Plugin R7 Empty
MesajSubiect: MySQL Plugin R7   MySQL Plugin R7 Icon_minitimeMar Aug 27, 2013 9:22 am

MySQL Plugin R7
Code: [Select]
Cod:
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)

    • mysql_affected_rows( [connectionHandle = 1] )
    • mysql_close( [connectionHandle = 1] )

      • Asigura-te ca "chemi" acesta in OnGameModeExit()/OnFilterscriptExit()


    • mysql_connect( const host[], const user[], const database[], const password[] )

      • Returns a connection handle you can use for multiple connections




Code: [Select]
Cod:
//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


    • mysql_debug( activat = 1 )

      • Activeaza-l si creaza un fisier log cu numele mysql.log


    • mysql_errno( [connectionHandle = 1] )
    • mysql_fetch_int( [connectionHandle = 1] )
    • mysql_fetch_field_row( string[], const fieldname[] [,connectionHandle = 1] )
    • mysql_fetch_float( &Float:result [,connectionHandle = 1] )
    • mysql_fetch_row_format( string[], const delimiter[] = "|" [,connectionHandle = 1] )
    • mysql_field_count( [connectionHandle = 1] )
    • mysql_format( [connectionHandle = 1] )
      Pawno Code: [Select]
      Cod:
      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);
    • mysql_free_result( [connectionHandle = 1] )
    • mysql_get_charset( destination[] [,connectionHandle = 1] )
    • mysql_insert_id( [connectionHandle = 1] )
    • mysql_num_rows( [connectionHandle = 1] )
    • mysql_num_fields( [connectionHandle = 1] )
    • mysql_ping( [connectionHandle = 1] )

      • Adauga return 1; daca conexiunea este activa, daca nu adauga return -1;


    • mysql_query( query[] [,resultid = (-1), extraid = (-1), connectionHandle = 1] )

      • Setting result id to something else than (-1), triggers the OnQueryFinish callback


    • mysql_query_callback( index, query[], callback[] [, extraid = (-1), connectionHandle = 1] )

      • Allows you to create custom callbacks for better structured coding (See sample_script.pwn below)


    • mysql_real_escape_string( const source[], destination[] [,connectionHandle = 1] )
    • mysql_reconnect( [connectionHandle = 1] )
    • mysql_reload( [connectionHandle = 1] )
    • mysql_retrieve_row( [connectionHandle = 1] )

      • Returns true (1) incase there are still rows to retrieve, else false (0)


    • mysql_set_charset( charset[] [,connectionHandle = 1] )
    • mysql_stat( const destination[] [,connectionHandle = 1] )
    • mysql_store_result( [connectionHandle = 1] )
    • mysql_warning_count( [connectionHandle = 1] )





  • Pawn Callback:

    • OnQueryFinish( query[], resultid, extraid, connectionHandle ) - Sample usage (updated)

      • This is just called if you used the 'resultid' parameter in the query function


    • OnQueryError( 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:


Daca nu intelegi ceva, posteaza aici.

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



Atentie:
Fiti foarte atenti la SQL Injection,sunt multi rau-voitori.
https://docs.google.com/Doc?docid=0AZNlBave77hiZGNjanptbV84Z25yaHJmMjk&pli=1#Allowed_Intermediary_Character_30801873723976314
Sus In jos
https://rnss.all-up.com
 
MySQL Plugin R7
Sus 
Pagina 1 din 1
 Subiecte similare
-
» Radio NO-Plugin

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
GlobalStrike-Community :: »[RnS]« • Salonul Scripturilor :: Plugin Development-
Mergi direct la: