Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- RFT MySql(ReMake) Version 2.0.1
- © 2012 by RFT
- ______________________________________________________________
- */
- #include <a_samp>
- #include <a_mysql>
- /*
- native r_mysql_debug();
- native r_mysql_connect(host[], user[], password[], database[], bool:AutoReconnect);
- native r_mysql_connected();
- native r_LoadEntrance(table[], where1[], where2[]);
- native r_UnloadEntrance();
- native r_GetString(field[]);
- native r_GetInt(field[]);
- native Float:r_GetFloat(field[]);
- native r_mysql_SetString(field[], to[]);
- native r_mysql_SetInt(field[], to);
- native r_mysql_SetFloat(field[], Float:to);
- native r_mysql_Insert(table[], string[], format[], {Float,_}:...);
- */
- new bool: rAutoConnect;
- new bool: rDebugging;
- new bool: r_in_use;
- new r_in_use_type;
- new r_GET[3][64];
- new rConnectInfo[4][32];
- stock r_mysql_debug()
- {
- new string[128];
- rDebugging = true;
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile;
- if(fexist("/rSQL/mysql.log"))
- {
- rFile = fopen("/rSQL/mysql.log", io_append);
- }
- else
- {
- rFile = fopen("/rSQL/mysql.log", io_write);
- }
- fwrite(rFile, "__________________________________________________");
- format(string, sizeof(string), "rSQL Debug gestartet am: %02d.%02d.%d Um: %02d:%02d", Day, Month, Year, Hour, Minute);
- fwrite(rFile, string);
- fwrite(rFile, "__________________________________________________\r\n\n\n");
- fclose(rFile);
- return 1;
- }
- stock r_mysql_connect(host[], user[], password[], database[], bool:AutoReconnect)
- {
- new string[128];
- if(AutoReconnect == true)
- {
- rAutoConnect = AutoReconnect;
- strmid(rConnectInfo[0], host, 0, strlen(host), 32);
- strmid(rConnectInfo[1], user, 0, strlen(user), 32);
- strmid(rConnectInfo[2], password, 0, strlen(password), 32);
- strmid(rConnectInfo[3], database, 0, strlen(database), 32);
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Auto-Reconnect aktiviert.\r\n", Day, Month, Year, Hour, Minute);
- fwrite(rFile, string);
- fclose(rFile);
- }
- }
- mysql_connect(host, user, database, password);
- if(mysql_ping()!=1)
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Es konnte keine Verbindung zu %s hergestellt werden...\r\n", Day, Month, Year, Hour, Minute, database);
- fwrite(rFile, string);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Es wird erneut versucht eine Verbindung zu %s herzustellen...\r\n", Day, Month, Year, Hour, Minute, database);
- fwrite(rFile, string);
- fclose(rFile);
- }
- mysql_connect(host, user, database, password);
- if(mysql_ping()!=1)
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Der erneute Versuch eine Verbindung zur Datenbank %s herzustellen ist gescheitert.\r\n", Day, Month, Year, Hour, Minute, database);
- fwrite(rFile, string);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Server wird heruntergefahren.\r\n", Day, Month, Year, Hour, Minute);
- fwrite(rFile, string);
- fclose(rFile);
- }
- SendRconCommand("exit");
- return 1;
- }
- else
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Der erneute Versuch eine Verbindung zu %s herzustellen war erfolgreich.\r\n", Day, Month, Year, Hour, Minute, database);
- fwrite(rFile, string);
- fclose(rFile);
- }
- }
- }
- else
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Verbindung zur Datenbank %s erfolgreich hergestellt.\r\n", Day, Month, Year, Hour, Minute, database);
- fwrite(rFile, string);
- fclose(rFile);
- }
- }
- return 1;
- }
- stock r_mysql_connected()
- {
- new string[128];
- if(mysql_ping()!=1)
- {
- if(rAutoConnect == true)
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Verbindung zu %s verloren\r\n", Day, Month, Year, Hour, Minute, rConnectInfo[3]);
- fwrite(rFile, string);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Es wird erneut versucht eine Verbindung zu %s herzustellen...\r\n", Day, Month, Year, Hour, Minute, rConnectInfo[3]);
- fwrite(rFile, string);
- fclose(rFile);
- }
- mysql_connect(rConnectInfo[0], rConnectInfo[1], rConnectInfo[3], rConnectInfo[2]);
- if(mysql_ping()!=1)
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Der erneute Verbindungsaufbau zu %s war erfolgreich.\r\n", Day, Month, Year, Hour, Minute, rConnectInfo[3]);
- fwrite(rFile, string);
- fclose(rFile);
- }
- return 1;
- }
- else
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Der erneute Versuch eine Verbindung zu %s herzustellen ist gescheitert.\r\n", Day, Month, Year, Hour, Minute, rConnectInfo[3]);
- fwrite(rFile, string);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Server wird heruntergefahren...\r\n", Day, Month, Year, Hour, Minute);
- fwrite(rFile, string);
- fclose(rFile);
- }
- SendRconCommand("exit");
- return 1;
- }
- }
- else
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Verbindung zu %s verloren\r\n", Day, Month, Year, Hour, Minute, rConnectInfo[3]);
- fwrite(rFile, string);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Server wird heruntergefahren...\r\n", Day, Month, Year, Hour, Minute);
- fwrite(rFile, string);
- fclose(rFile);
- }
- SendRconCommand("exit");
- return 1;
- }
- }
- return 1;
- }
- stock r_LoadEntrance(table[], where1[], where2[])
- {
- r_mysql_connected();
- new Query[128], string[128];
- if(r_in_use == false)
- {
- strmid(r_GET[0], table, 0, strlen(table), 64);
- strmid(r_GET[1], where1, 0, strlen(where1), 64);
- strmid(r_GET[2], where2, 0, strlen(where2), 64);
- format(Query, sizeof(Query), "SELECT * FROM %s WHERE `%s` = '%s'", table, where1, where2);
- mysql_query(Query);
- mysql_store_result();
- r_in_use = true;
- r_in_use_type = 1;
- if(mysql_retrieve_row())
- {
- return 1;
- }
- else
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Eintrag nicht gefunden.\r\n", Day, Month, Year, Hour, Minute, rConnectInfo[3]);
- fwrite(rFile, string);
- fclose(rFile);
- }
- return 0;
- }
- }
- else
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Eintrag konnte nicht geladen werden, Es wurde bereits ein Eintrag geladen.\r\n", Day, Month, Year, Hour, Minute, rConnectInfo[3]);
- fwrite(rFile, string);
- fclose(rFile);
- }
- return 0;
- }
- }
- stock r_UnloadEntrance()
- {
- r_mysql_connected();
- mysql_free_result();
- r_in_use_type = 0;
- r_in_use = false;
- return 1;
- }
- stock r_GetString(field[])
- {
- r_mysql_connected();
- new Load[128], string[128];
- if(r_in_use_type == 1)
- {
- mysql_fetch_field_row(Load, field);
- return Load;
- }
- else
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Es wurde kein Eintrag geladen.\r\n", Day, Month, Year, Hour, Minute, rConnectInfo[3]);
- fwrite(rFile, string);
- fclose(rFile);
- }
- return Load;
- }
- }
- stock r_GetInt(field[])
- {
- return strval(r_GetString(field));
- }
- forward Float:r_GetFloat(Var[]);
- stock Float:r_GetFloat(Var[])
- {
- return floatstr(r_GetString(Var));
- }
- stock r_mysql_SetString(field[], to[])
- {
- r_mysql_connected();
- new string[128];
- if(r_in_use==true && r_in_use_type == 1)
- {
- new query[128];
- format(query, sizeof(query), "UPDATE %s SET `%s` = '%s' WHERE `%s` = '%s'", r_GET[0], field, to, r_GET[1], r_GET[2]);
- mysql_query(query);
- r_UpdateRow();
- return 1;
- }
- else
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Es wurde kein Eintrag geladen.\r\n", Day, Month, Year, Hour, Minute, rConnectInfo[3]);
- fwrite(rFile, string);
- fclose(rFile);
- }
- return 0;
- }
- }
- stock r_mysql_SetInt(field[], to)
- {
- new string[128];
- if(r_in_use==true && r_in_use_type == 1)
- {
- new query[128];
- format(query, sizeof(query), "UPDATE %s SET `%s` = '%d' WHERE `%s` = '%s'", r_GET[0], field, to, r_GET[1], r_GET[2]);
- mysql_query(query);
- r_UpdateRow();
- return 1;
- }
- else
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Es wurde kein Eintrag geladen.\r\n", Day, Month, Year, Hour, Minute, rConnectInfo[3]);
- fwrite(rFile, string);
- fclose(rFile);
- }
- return 0;
- }
- }
- stock r_mysql_SetFloat(field[], Float:to)
- {
- new string[128];
- if(r_in_use==true && r_in_use_type == 1)
- {
- new query[128];
- format(query, sizeof(query), "UPDATE %s SET `%s` = '%f' WHERE `%s` = '%s'", r_GET[0], field, to, r_GET[1], r_GET[2]);
- mysql_query(query);
- r_UpdateRow();
- return 1;
- }
- else
- {
- if(rDebugging == true)
- {
- new Day, Month, Year, Minute, Hour;
- gettime(Hour, Minute);
- getdate(Year, Month, Day);
- new File:rFile = fopen("/rSQL/mysql.log", io_append);
- format(string, sizeof(string), "[%02d.%02d.%d][%02d:%02d]: Es wurde kein Eintrag geladen.\r\n", Day, Month, Year, Hour, Minute, rConnectInfo[3]);
- fwrite(rFile, string);
- fclose(rFile);
- }
- return 0;
- }
- }
- stock r_UpdateRow()
- {
- r_mysql_connected();
- r_UnloadEntrance();
- r_LoadEntrance(r_GET[0], r_GET[1], r_GET[2]);
- return 1;
- }
- stock r_mysql_Insert(table[], string[], format2[], {Float,_}:...)
- {
- r_mysql_connected();
- new start = 3;
- new Query[128];
- new Query1[128];
- new Query2[128];
- new str[10][128];
- new in[10];
- new Float: pi[10];
- new f[10][32];
- r_split(string, f, ',');
- for(new i = 0; i < strlen(format2); i++)
- {
- switch(format2[i])
- {
- case 's':
- {
- for(new i2 = 0; i2 < 128; i2++)
- {
- str[i][i2]=getarg(i+start, i2);
- if(!getarg(i+start, i2+1))
- {
- break;
- }
- }
- }
- case 'd':
- {
- in[i]=getarg(i+start, 0);
- }
- case 'f':
- {
- pi[i]=Float:getarg(i+start, 0);
- }
- }
- }
- for(new i = 0; i < strlen(format2); i++)
- {
- switch(format2[i])
- {
- case 's':
- {
- if(i == 0)
- {
- format(Query1, sizeof(Query1), "`%s`", f[i]);
- format(Query2, sizeof(Query2), "'%s'", str[i]);
- }
- else
- {
- format(Query1, sizeof(Query1), "%s,`%s`", Query1, f[i]);
- format(Query2, sizeof(Query2), "%s,'%s'", Query2, str[i]);
- }
- }
- case 'd':
- {
- if(i == 0)
- {
- format(Query1, sizeof(Query1), "`%s`", f[i]);
- format(Query2, sizeof(Query2), "%d", in[i]);
- }
- else
- {
- format(Query1, sizeof(Query1), "%s,`%s`", Query1, f[i]);
- format(Query2, sizeof(Query2), "%s,%d", Query2, in[i]);
- }
- }
- case 'f':
- {
- if(i == 0)
- {
- format(Query1, sizeof(Query1), "`%s`", f[i]);
- format(Query2, sizeof(Query2), "%f", pi[i]);
- }
- else
- {
- format(Query1, sizeof(Query1), "%s,`%s`", Query1, f[i]);
- format(Query2, sizeof(Query2), "%s,%f", Query2, pi[i]);
- }
- }
- }
- }
- format(Query, sizeof(Query), "INSERT INTO `%s`(%s) VALUES (%s)", table, Query1, Query2);
- mysql_query(Query);
- return 1;
- }
- stock r_split(const strsrc[], strdest[][], delimiter) //Wiki
- {
- new i, li;
- new aNum;
- new len;
- while(i <= strlen(strsrc))
- {
- if(strsrc[i] == delimiter || i == strlen(strsrc))
- {
- len = strmid(strdest[aNum], strsrc, li, i, 128);
- strdest[aNum][len] = 0;
- li = i+1;
- aNum++;
- }
- i++;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement