Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- <-+-------------------------------+->
- <-+ Easy MySQL-Sytem +->
- <-+ +->
- <-+ @Author: Maddin +->
- <-+ @Version: 1.2 +->
- <-+ @Released: 10/04/2011 +->
- <-+ +->
- <-+-------------------------------+->
- ACHTUNG: Wenn keine bestimmte Verbindung angegeben wird, wird automatisch die erste verbindung verwendet!
- <-+-------------------------------[Funktionen]-------------------------------+->
- native eSQL_Connect_To_DB();
- native eSQL_Close_Connection(connectionHandle = 1);
- native eSQL_Check_Connection(connectionHandle = 1);
- native eSQL_CheckAccount(playername[], connectionHandle = 1);
- native eSQL_CreateAccount(playername[], pass[], hash = 0, connectionHandle = 1);
- native eSQL_ReturnPasswort(playername[], connectionHandle = 1);
- native eSQL_ChangePasswort(playername[], pass[], hash = 0, connectionHandle = 1);
- native eSQL_GetMaxInt(Field[], Table[], connectionHandle = 1);
- native eSQL_GetMaxFloat(Field[], Table[], connectionHandle = 1);
- native Float:eSQL_GetFloat(Table[], Field[], Where[], Is[], connectionHandle = 1);
- native eSQL_GetString(Table[], Field[], Where[], Is[], connectionHandle = 1);
- native eSQL_GetInt(Table[], Field[], Where[], Is[], connectionHandle = 1);
- native eSQL_SetInt(Table[], Field[], To, Where[], Is[], connectionHandle = 1);
- native eSQL_SetString(Table[], Field[], To[], Where[], Is[], connectionHandle = 1);
- native eSQL_SetFloat(Table[], Field[], Float:To, Where[], Is[], connectionHandle = 1);
- native eSQL_CountDB(Table[], connectionHandle = 1);
- native eSQL_DeleteRow(Table[], Where[], Is[], connectionHandle = 1);
- native eSQL_GetStats(destination[],connectionHandle = 1);
- native eSQL_AddField(Table[], FieldName[], type, Length = 0, Decimals = 0, values[]="", connectionHandle = 1);
- native eSQL_DeleteField(Table[], FieldName[], connectionHandle = 1);
- <-+--------------------------------------------------------------------------+->
- */
- #include <a_samp>
- //==================================
- #if !defined mysql_included
- #tryinclude <a_mysql>
- #if !defined mysql_included
- #error Please include a_mysql!
- #endif
- #endif
- #if !defined isnull
- #define isnull(%1) \
- ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
- #endif
- #define eSQL:: eSQL_
- //==================================
- #define SQL_HOST "DEINE_MYSQL_IP"
- #define SQL_USER "DEIN_MYSQL_USER_NAME"
- #define SQL_PASS "DEIN_MYSQL_PASSWORT"
- #define SQL_DATA "DEIN_MYSQL_DATENBANK_NAME"
- //==================================
- #define ACCOUNT_TABLE "Accounts"
- #define USERNAME_FIELD "Username"
- #define PASSWORD_FIELD "Password"
- //==================================
- /******************************************************************************
- --- eSQL_Connect_To_DB()
- Versucht eine verbindung zur Datenbank herzustellen.
- Wenn nach dem Zweiten versuch keine verbindung hergestellt werden konnte, wird der Server heruntergefahren.
- Rückgabe: Die ID der gerade aufgebauten verbindung.
- ******************************************************************************/
- stock eSQL_Connect_To_DB()
- {
- new eSQL::cHandle;
- eSQL::cHandle = mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
- if(mysql_ping() == 1) {
- print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
- return eSQL::cHandle;
- } else {
- print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
- print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
- eSQL::cHandle = mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
- if(mysql_ping() == 1) {
- print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
- return eSQL::cHandle;
- } else {
- print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
- print("<-| [MYSQL] Der Server wird nun beendet!");
- return SendRconCommand("exit");
- }
- }
- }
- /******************************************************************************
- --- eSQL_Check_Connection(connectionHandle = 1);
- Überprüft ob die Verbindung noch steht.
- Rückgabe: Die ID der überprüften verbindung.
- ******************************************************************************/
- stock eSQL_Check_Connection(connectionHandle = 1)
- {
- if(mysql_ping(connectionHandle)) {
- print("<-| [MYSQL] Verbindung zur Datenbank steht noch!");
- return connectionHandle;
- } else {
- print("<-| [MYSQL] Die verbindung zur Datenbank ist nicht mehr gültig.!");
- print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
- mysql_reconnect (connectionHandle);
- if(mysql_ping(connectionHandle)) {
- print("<-| [MYSQL] Es konnte eine Verbindung hergestellt werden!");
- return connectionHandle;
- } else {
- mysql_reconnect (connectionHandle);
- if(mysql_ping(connectionHandle)) {
- print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
- return connectionHandle;
- } else {
- print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
- print("<-| [MYSQL] Der Server wird nun beendet!");
- return SendRconCommand("exit");
- }
- }
- }
- }
- /******************************************************************************
- --- eSQL_CheckAccount(playername[], connectionHandle = 1);
- Überpüft ob ein Account unter dem Angegebenen Namen existiert.
- playername[] - Der Name der Überprüft werden soll.
- Rückgabe: 0 Wenn Account nicht existiert, 1 Wenn er existiert.
- ******************************************************************************/
- stock eSQL_CheckAccount(playername[], connectionHandle = 1)
- {
- new eSQL::Query[512],eSQL::EscapeString[MAX_PLAYER_NAME];
- mysql_real_escape_string(playername,eSQL::EscapeString);
- format(eSQL::Query, 512, "SELECT * FROM %s WHERE %s = '%s'", ACCOUNT_TABLE, USERNAME_FIELD, eSQL::EscapeString);
- mysql_query(eSQL::Query, -1, -1, connectionHandle);
- mysql_store_result(connectionHandle);
- return mysql_num_rows(connectionHandle);
- }
- /******************************************************************************
- --- eSQL_CreateAccount(playername[], pass[], hash = 0, connectionHandle = 1);
- Erstellt einen Account mit den Angegebenen Parametern.
- playername[] - Der Name des Spielers dessen Account erstellt werden soll.
- pass[] - Das Passwort mit dem der Account erstellt werden soll
- hash - Ob das Passwort gehast werden soll, und wie.
- 0 = Kein Hash (blankes Passwort)
- 1 = MD5 Hash
- 2 = SHA1 Hash
- 3 = SHA2-224 Hash
- 4 = SHA2-256 Hash
- 5 = SHA2-384 Hash
- 6 = SHA2-512 Hash
- Rückgabe: 1 wenn erfolgreich, 0 wenn nicht.
- ******************************************************************************/
- stock eSQL_CreateAccount(playername[], pass[], hash = 0, connectionHandle = 1)
- {
- new eSQL::Query[512],eSQL::EscapeString[2][512];
- mysql_real_escape_string(playername,eSQL::EscapeString[0]);
- mysql_real_escape_string(pass,eSQL::EscapeString[1]);
- switch(hash)
- {
- case 0: format(eSQL::Query, 512, "INSERT INTO %s (%s, %s) VALUES ('%s', '%s')", ACCOUNT_TABLE, USERNAME_FIELD, PASSWORD_FIELD, eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 1: format(eSQL::Query, 512, "INSERT INTO %s (%s, %s) VALUES ('%s', MD5('%s'))", ACCOUNT_TABLE, USERNAME_FIELD, PASSWORD_FIELD, eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 2: format(eSQL::Query, 512, "INSERT INTO %s (%s, %s) VALUES ('%s', SHA1('%s'))", ACCOUNT_TABLE, USERNAME_FIELD, PASSWORD_FIELD, eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 3: format(eSQL::Query, 512, "INSERT INTO %s (%s, %s) VALUES ('%s', SHA2('%s', 224))", ACCOUNT_TABLE, USERNAME_FIELD, PASSWORD_FIELD, eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 4: format(eSQL::Query, 512, "INSERT INTO %s (%s, %s) VALUES ('%s', SHA2('%s', 256))", ACCOUNT_TABLE, USERNAME_FIELD, PASSWORD_FIELD, eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 5: format(eSQL::Query, 512, "INSERT INTO %s (%s, %s) VALUES ('%s', SHA2('%s', 384))", ACCOUNT_TABLE, USERNAME_FIELD, PASSWORD_FIELD, eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 6: format(eSQL::Query, 512, "INSERT INTO %s (%s, %s) VALUES ('%s', SHA2('%s', 512))", ACCOUNT_TABLE, USERNAME_FIELD, PASSWORD_FIELD, eSQL::EscapeString[0], eSQL::EscapeString[1]);
- }
- return mysql_query(eSQL::Query, -1, -1, connectionHandle);
- }
- /******************************************************************************
- --- eSQL_ReturnPasswort(playername[], connectionHandle = 1);
- Gibt das passwort des Angegebenen Spielers zurück.
- playername[] - Der name des Spielers dessen Passwort zurück gegeben werden soll.
- Rückgabe: Das passwort des Spielers.
- ******************************************************************************/
- stock eSQL_ReturnPasswort(playername[], connectionHandle = 1)
- {
- new eSQL::Query[512], eSQL::Get[256], eSQL::EscapeString[MAX_PLAYER_NAME];
- mysql_real_escape_string(playername, eSQL::EscapeString);
- format(eSQL::Query, 512, "SELECT %s FROM %s WHERE %s = '%s'", PASSWORD_FIELD, ACCOUNT_TABLE, USERNAME_FIELD, eSQL::EscapeString);
- mysql_query(eSQL::Query, -1, -1, connectionHandle);
- mysql_store_result(connectionHandle);
- mysql_fetch_row_format(eSQL::Get,"|",connectionHandle);
- mysql_free_result(connectionHandle);
- return eSQL::Get;
- }
- /******************************************************************************
- --- eSQL_ChangePasswort(playername[], pass[], hash = 0, connectionHandle = 1);
- Ändert das Passwort des angegebenen Spielers.
- playername[] - Der Name des Spielers dessen Passwort geändert werden soll.
- hash - Ob das Passwort gehast werden soll, und wie.
- 0 = Kein Hash (blankes Passwort)
- 1 = MD5 Hash
- 2 = SHA1 Hash
- 3 = SHA2-224 Hash
- 4 = SHA2-256 Hash
- 5 = SHA2-384 Hash
- 6 = SHA2-512 Hash
- Rückgabe: 1 wenn erfolgreich, 0 wenn nicht.
- ******************************************************************************/
- stock eSQL_ChangePasswort(playername[], pass[], hash = 0, connectionHandle = 1)
- {
- new eSQL::Query[512],eSQL::EscapeString[2][512];
- mysql_real_escape_string(playername, eSQL::EscapeString[0]);
- mysql_real_escape_string(pass, eSQL::EscapeString[1]);
- switch(hash)
- {
- case 0: format(eSQL::Query, 512, "UPDATE %s SET %s = '%s' WHERE %s = '%s'", ACCOUNT_TABLE, PASSWORD_FIELD, eSQL::EscapeString[1], USERNAME_FIELD, eSQL::EscapeString[0]);
- case 1: format(eSQL::Query, 512, "UPDATE %s SET %s = MD5('%s') WHERE %s = '%s'", ACCOUNT_TABLE, PASSWORD_FIELD, eSQL::EscapeString[1], USERNAME_FIELD, eSQL::EscapeString[0]);
- case 2: format(eSQL::Query, 512, "UPDATE %s SET %s = SHA1('%s') WHERE %s = '%s'", ACCOUNT_TABLE, PASSWORD_FIELD, eSQL::EscapeString[1], USERNAME_FIELD, eSQL::EscapeString[0]);
- case 3: format(eSQL::Query, 512, "UPDATE %s SET %s = SHA2('%s', 224) WHERE %s = '%s'", ACCOUNT_TABLE, PASSWORD_FIELD, eSQL::EscapeString[1], USERNAME_FIELD, eSQL::EscapeString[0]);
- case 4: format(eSQL::Query, 512, "UPDATE %s SET %s = SHA2('%s', 256) WHERE %s = '%s'", ACCOUNT_TABLE, PASSWORD_FIELD, eSQL::EscapeString[1], USERNAME_FIELD, eSQL::EscapeString[0]);
- case 5: format(eSQL::Query, 512, "UPDATE %s SET %s = SHA2('%s', 384) WHERE %s = '%s'", ACCOUNT_TABLE, PASSWORD_FIELD, eSQL::EscapeString[1], USERNAME_FIELD, eSQL::EscapeString[0]);
- case 6: format(eSQL::Query, 512, "UPDATE %s SET %s = SHA2('%s', 512) WHERE %s = '%s'", ACCOUNT_TABLE, PASSWORD_FIELD, eSQL::EscapeString[1], USERNAME_FIELD, eSQL::EscapeString[0]);
- }
- return mysql_query(eSQL::Query, -1, -1, connectionHandle);
- }
- /******************************************************************************
- --- eSQL_GetMaxInt(Field[], Table[], connectionHandle = 1);
- Gibt den Höchsten Integer aus einer Tabelle aus der in einem bestimmten feld liegt.
- Field[] - Das Feld (die Spalte) aus der der höchste Wert ausgelesen werden soll.
- Table[] - Die Tabelle in der das Feld liegt.
- Rückgabe: Den höchsten Integer.
- ******************************************************************************/
- stock eSQL_GetMaxInt(Field[], Table[], connectionHandle = 1)
- {
- new eSQL::Query[512], eSQL::Int, eSQL::EscapeString[2][512];
- mysql_real_escape_string(Field, eSQL::EscapeString[0]);
- mysql_real_escape_string(Table, eSQL::EscapeString[1]);
- format(eSQL::Query, 512, "SELECT MAX(%s) FROM %s", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- mysql_query(eSQL::Query, -1, -1, connectionHandle);
- mysql_store_result(connectionHandle);
- eSQL::Int = mysql_fetch_int(connectionHandle);
- mysql_free_result(connectionHandle);
- return eSQL::Int;
- }
- /******************************************************************************
- --- eSQL_GetMaxFloat(Field[], Table[], connectionHandle = 1);
- Gibt den Höchsten Float Wert aus einer Tabelle aus der in einem bestimmten feld liegt.
- Field[] - Das Feld (die Spalte) aus der der höchste Wert ausgelesen werden soll.
- Table[] - Die Tabelle in der das Feld liegt.
- Rückgabe: Den höchsten Float wert.
- ******************************************************************************/
- stock eSQL_GetMaxFloat(Field[], Table[], connectionHandle = 1)
- {
- new eSQL::Query[512], Float:eSQL::Float, eSQL::EscapeString[2][512];
- mysql_real_escape_string(Field, eSQL::EscapeString[0]);
- mysql_real_escape_string(Table, eSQL::EscapeString[1]);
- format(eSQL::Query, 512, "SELECT MAX(%s) FROM %s", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- mysql_query(eSQL::Query, -1, -1, connectionHandle);
- mysql_store_result(connectionHandle);
- mysql_fetch_float(eSQL::Float, connectionHandle);
- mysql_free_result(connectionHandle);
- return eSQL::Float
- }
- /******************************************************************************
- --- eSQL_GetString(Table[], Field[], Where[], Is[], connectionHandle = 1);
- Gibt den string zurück, der an der angegebenen Position in der angegebenen Tabelle liegt.
- Table[] - Die Tabelle in der der Wert liegt.
- Field[] - Das Feld (die Spalte) in der der Wert liegt.
- Where[] - Das Feld (die Spalte) in der Nach der Bedingung gesucht wird.
- Is[] - Die bedingung um die richtige Reihe zu finden.
- Rückgabe: Den string der gesucht wurde.
- ******************************************************************************/
- stock eSQL_GetString(Table[], Field[], Where[], Is[], connectionHandle = 1)
- {
- new eSQL::Query[512], eSQL::Get[512], eSQL::EscapeString[4][512];
- mysql_real_escape_string(Table, eSQL::EscapeString[0]);
- mysql_real_escape_string(Field, eSQL::EscapeString[1]);
- mysql_real_escape_string(Where, eSQL::EscapeString[2]);
- mysql_real_escape_string(Is, eSQL::EscapeString[3]);
- format(eSQL::Query, 512, "SELECT %s FROM %s WHERE %s = '%s'", eSQL::EscapeString[0], eSQL::EscapeString[1], eSQL::EscapeString[2], eSQL::EscapeString[3]);
- mysql_query(eSQL::Query, -1, -1, connectionHandle);
- mysql_store_result(connectionHandle);
- mysql_fetch_row_format(eSQL::Get,"|",connectionHandle);
- mysql_free_result(connectionHandle);
- return eSQL::Get;
- }
- /******************************************************************************
- --- eSQL_GetInt(Table[], Field[], Where[], Is[], connectionHandle = 1);
- Gibt den Integer zurück, der an der angegebenen Position in der angegebenen Tabelle liegt.
- Table[] - Die Tabelle in der der Wert liegt.
- Field[] - Das Feld (die Spalte) in der der Wert liegt.
- Where[] - Das Feld (die Spalte) in der Nach der Bedingung gesucht wird.
- Is[] - Die bedingung um die richtige Reihe zu finden.
- Rückgabe: Den Integer der gesucht wurde.
- ******************************************************************************/
- stock eSQL_GetInt(Table[], Field[], Where[], Is[], connectionHandle = 1)
- {
- new eSQL::Query[512], eSQL::Int, eSQL::EscapeString[4][512];
- mysql_real_escape_string(Table, eSQL::EscapeString[0]);
- mysql_real_escape_string(Field, eSQL::EscapeString[1]);
- mysql_real_escape_string(Where, eSQL::EscapeString[2]);
- mysql_real_escape_string(Is, eSQL::EscapeString[3]);
- format(eSQL::Query, 512, "SELECT %s FROM %s WHERE %s = '%s'", eSQL::EscapeString[0], eSQL::EscapeString[1], eSQL::EscapeString[2], eSQL::EscapeString[3]);
- mysql_query(eSQL::Query, -1, -1, connectionHandle);
- mysql_store_result(connectionHandle);
- eSQL::Int = mysql_fetch_int(connectionHandle);
- mysql_free_result(connectionHandle);
- return eSQL::Int;
- }
- /******************************************************************************
- --- Float:eSQL_GetFloat(Table[], Field[], Where[], Is[], connectionHandle = 1);
- Gibt den Float wert zurück, der an der angegebenen Position in der angegebenen Tabelle liegt.
- Table[] - Die Tabelle in der der Wert liegt.
- Field[] - Das Feld (die Spalte) in der der Wert liegt.
- Where[] - Das Feld (die Spalte) in der Nach der Bedingung gesucht wird.
- Is[] - Die bedingung um die richtige Reihe zu finden.
- Rückgabe: Den Float wert der gesucht wurde.
- ******************************************************************************/
- stock Float:eSQL_GetFloat(Table[], Field[], Where[], Is[], connectionHandle = 1)
- {
- new eSQL::Query[512], Float:eSQL::Float, eSQL::EscapeString[4][512];
- mysql_real_escape_string(Table, eSQL::EscapeString[0]);
- mysql_real_escape_string(Field, eSQL::EscapeString[1]);
- mysql_real_escape_string(Where, eSQL::EscapeString[2]);
- mysql_real_escape_string(Is, eSQL::EscapeString[3]);
- format(eSQL::Query, 512, "SELECT %s FROM %s WHERE %s = '%s'", eSQL::EscapeString[0], eSQL::EscapeString[1], eSQL::EscapeString[2], eSQL::EscapeString[3]);
- mysql_query(eSQL::Query, -1, -1, connectionHandle);
- mysql_store_result(connectionHandle);
- mysql_fetch_float(eSQL::Float, connectionHandle);
- mysql_free_result(connectionHandle);
- return eSQL::Float;
- }
- /******************************************************************************
- --- eSQL_SetInt(Table[], Field[], To, Where[], Is[], connectionHandle = 1);
- Ändert das angegebene Feld auf einen eneuen Wert.
- Table[] - Die Tabelle in der der Wert verändert werden soll.
- Field[] - Das Feld (die Spalte) in der der Wert verändert werden soll.
- To - Der Wert der an der in das Angegebene feld eingetragen werden soll.
- Where[] - Das Feld (die Spalte) in der Nach der Bedingung gesucht wird.
- Is[] - Die bedingung um die richtige Reihe zu finden.
- Rückgabe: 1 wenn erfolgreich, 0 wenn nicht.
- ******************************************************************************/
- stock eSQL_SetInt(Table[], Field[], To, Where[], Is[], connectionHandle = 1)
- {
- new eSQL::Query[128], eSQL::EscapeString[4][512];
- mysql_real_escape_string(Table, eSQL::EscapeString[0]);
- mysql_real_escape_string(Field, eSQL::EscapeString[1]);
- mysql_real_escape_string(Where, eSQL::EscapeString[2]);
- mysql_real_escape_string(Is, eSQL::EscapeString[3]);
- format(eSQL::Query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", eSQL::EscapeString[0], eSQL::EscapeString[1], To, eSQL::EscapeString[2], eSQL::EscapeString[3]);
- return mysql_query(eSQL::Query, -1, -1, connectionHandle);
- }
- /******************************************************************************
- --- eSQL_SetString(Table[], Field[], To[], Where[], Is[], connectionHandle = 1);
- Ändert das angegebene Feld auf einen eneuen Wert.
- Table[] - Die Tabelle in der der Wert verändert werden soll.
- Field[] - Das Feld (die Spalte) in der der Wert verändert werden soll.
- To[] - Der Wert der an der in das Angegebene feld eingetragen werden soll.
- Where[] - Das Feld (die Spalte) in der Nach der Bedingung gesucht wird.
- Is[] - Die bedingung um die richtige Reihe zu finden.
- Rückgabe: 1 wenn erfolgreich, 0 wenn nicht.
- ******************************************************************************/
- stock eSQL_SetString(Table[], Field[], To[], Where[], Is[], connectionHandle = 1)
- {
- new eSQL::Query[128], eSQL::EscapeString[5][512];
- mysql_real_escape_string(Table, eSQL::EscapeString[0]);
- mysql_real_escape_string(Field, eSQL::EscapeString[1]);
- mysql_real_escape_string(To, eSQL::EscapeString[2]);
- mysql_real_escape_string(Where, eSQL::EscapeString[3]);
- mysql_real_escape_string(Is, eSQL::EscapeString[4]);
- format(eSQL::Query, 128, "UPDATE %s SET %s = '%s' WHERE %s = '%s'", eSQL::EscapeString[0], eSQL::EscapeString[1], eSQL::EscapeString[2], eSQL::EscapeString[3], eSQL::EscapeString[4]);
- return mysql_query(eSQL::Query, -1, -1, connectionHandle);
- }
- /******************************************************************************
- --- eSQL_SetFloat(Table[], Field[], Float:To, Where[], Is[], connectionHandle = 1);
- Ändert das angegebene Feld auf einen eneuen Wert.
- Table[] - Die Tabelle in der der Wert verändert werden soll.
- Field[] - Das Feld (die Spalte) in der der Wert verändert werden soll.
- Float:To - Der Wert der an der in das Angegebene feld eingetragen werden soll.
- Where[] - Das Feld (die Spalte) in der Nach der Bedingung gesucht wird.
- Is[] - Die bedingung um die richtige Reihe zu finden.
- Rückgabe: 1 wenn erfolgreich, 0 wenn nicht.
- ******************************************************************************/
- stock eSQL_SetFloat(Table[], Field[], Float:To, Where[], Is[], connectionHandle = 1)
- {
- new eSQL::Query[128], eSQL::EscapeString[4][512];
- mysql_real_escape_string(Table, eSQL::EscapeString[0]);
- mysql_real_escape_string(Field, eSQL::EscapeString[1]);
- mysql_real_escape_string(Where, eSQL::EscapeString[2]);
- mysql_real_escape_string(Is, eSQL::EscapeString[3]);
- format(eSQL::Query, 128, "UPDATE %s SET %s = '%f' WHERE %s = '%s'", eSQL::EscapeString[0], eSQL::EscapeString[1], To, eSQL::EscapeString[2], eSQL::EscapeString[3]);
- return mysql_query(eSQL::Query, -1, -1, connectionHandle);
- }
- /******************************************************************************
- --- eSQL_CountDB(Table[], connectionHandle = 1);
- Zählt die Reihen einer Tabelle und gibt diese als Integer zurück.
- Table[] - Die Tabelle in der die Anzahl an Reihen bestimmt werden soll.
- Rückgabe: Die Anzahl an Reihen die in der angegebenen Tabelle existieren.
- ******************************************************************************/
- stock eSQL_CountDB(Table[], connectionHandle = 1)
- {
- new eSQL::Query[128], eSQL::Rows, eSQL::EscapeString[512];
- mysql_real_escape_string(Table,eSQL::EscapeString);
- format(string, 128, "SELECT * FROM %s",eSQL::EscapeString);
- mysql_query(eSQL::Query, -1, -1, connectionHandle);
- mysql_store_result(connectionHandle);
- eSQL::Rows = mysql_num_rows(connectionHandle);
- mysql_free_result(connectionHandle);
- return eSQL::Rows;
- }
- /******************************************************************************
- --- eSQL_DeleteRow(Table[], Where[], Is[], connectionHandle = 1);
- Löscht eine Reihe aus einer Angegebenen Tabelle.
- Table[] - Die Tabelle aus der eine Reihe gelöscht werden soll.
- Where[] - Das Feld (die Spalte) in der Nach der Bedingung gesucht wird.
- Is[] - Die bedingung um die richtige Reihe zu finden.
- Rückgabe: 1 wenn erfolgreich, 0 wenn nicht.
- ******************************************************************************/
- stock eSQL_DeleteRow(Table[], Where[], Is[], connectionHandle = 1)
- {
- new eSQL::Query[512], eSQL::EscapeString[3][512];
- mysql_real_escape_string(Table, eSQL::EscapeString[0]);
- mysql_real_escape_string(Where, eSQL::EscapeString[1]);
- mysql_real_escape_string(Is, eSQL::EscapeString[2]);
- format(eSQL::Query, 512, "DELETE FROM %s WHERE %s = '%s'", eSQL::EscapeString[0], eSQL::EscapeString[1], eSQL::EscapeString[2]);
- return mysql_query(eSQL::Query, -1, -1, connectionHandle);
- }
- /******************************************************************************
- --- eSQL_Close_Connection(connectionHandle = 1)
- Schliesst eine bestehende MySQL Verbindung.
- Rückgabe: 1 wenn erfolgreich, 0 wenn nicht.
- ******************************************************************************/
- stock eSQL_Close_Connection(connectionHandle = 1)
- {
- return mysql_close(connectionHandle);
- }
- /******************************************************************************
- --- eSQL_GetStats(destination[],connectionHandle = 1);
- Gibt die Aktuelle Statistik der Datenbank aus.
- destination[] - Der string in der die Statistik gespeichert werden soll.
- Rückgabe: Diese funktion gibt keinen bestimmten wert zurück.
- ******************************************************************************/
- stock eSQL_GetStats(destination[],connectionHandle = 1)
- {
- new eSQL::Stats[256];
- mysql_stat(eSQL::Stats, connectionHandle);
- strins(destination, eSQL::Stats, 0, sizeof(destination));
- return true;
- }
- /******************************************************************************
- --- eSQL_AddField(Table[], FieldName[], type, Length = 0, Decimals = 0, values[]="", connectionHandle = 1);
- Fügt einer Tabelle eine Spalte hinzu.
- Table[] - Die Tabelle in der eine neue Spalte hinzugefügt werden soll.
- FieldName[] - Der name der Spalte
- type - Der Typ der Spalte.
- 0 - int
- 1 - varchar
- 2 - float
- 3 - tinyint
- 4 - smallint
- 5 - mediumint
- 6 - integer
- 7 - bigint
- 8 - bit
- 9 - real
- 10 - double
- 11 - decimal
- 12 - numeric
- 13 - char
- 14 - date
- 15 - time
- 16 - year
- 17 - timestamp
- 18 - datetime
- 19 - tinyblob
- 20 - blob
- 21 - mediumblob
- 22 - longblob
- 23 - tinytext
- 24 - text
- 25 - mediumtext
- 26 - longtext
- 27 - binary
- 28 - varbinary
- 29 - point
- 30 - linestring
- 31 - polygon
- 32 - geometry
- 33 - multipoint
- 34 - multilinestring
- 35 - multipolygon
- 36 - geometrycollection
- 37 - enum
- 38 - set
- Length - Die Länge des wertes
- Decimals - die Anzahl der nachkomma stellen z.b bei einem Float wert.
- values[] - Der/Die wert/e für enum und set typen. Mehrere Werte müssen mit einem (,) getrennt werden.
- Rückgabe: 1 wenn erfolgreich, 0 wenn nicht.
- ******************************************************************************/
- stock eSQL_AddField(Table[], FieldName[], type, Length = 0, Decimals = 0, values[]="", connectionHandle = 1)
- {
- new eSQL::Query[512],eSQL::EscapeString[2][512], eSQL::Values[512];
- mysql_real_escape_string(Table, eSQL::EscapeString[0]);
- mysql_real_escape_string(FieldName, eSQL::EscapeString[1]);
- if(!isnull(values) && (type==37 || type==38))
- {
- format(eSQL::Values, 512, "'%s'", values);
- if(strfind(values, ",")!=-1)
- {
- new eSQL::Pos, eSQL::Blub = 0;
- while(strfind(values, ",") != -1)
- {
- eSQL::Pos = strfind(values, ",");
- strdel(values, strfind(values, ","), strfind(values, ",")+1);
- eSQL::Pos += eSQL::Blub;
- strins(eSQL::Values, "'", eSQL::Pos+1);
- strins(eSQL::Values, "'", eSQL::Pos+4);
- eSQL::Blub += 3;
- }
- }
- }
- switch(type)
- {
- case 0: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s int(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 1: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s varchar(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 2: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s float(%d,%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length, Decimals);
- case 3: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s tinyint(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 4: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s smallint(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 5: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s mediumint(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 6: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s integer(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 7: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s bigint(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 8: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s bit(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 9: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s real(%d,%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length, Decimals);
- case 10: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s double(%d,%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length, Decimals);
- case 11: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s decimal(%d,%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length, Decimals);
- case 12: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s numeric(%d,%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length, Decimals);
- case 13: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s char(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 14: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s date", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 15: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s time", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 16: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s year", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 17: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s timestamp(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 18: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s datetime", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 19: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s tinyblob", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 20: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s blob", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 21: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s mediumblob", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 22: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s longblob", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 23: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s tinytext", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 24: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s text", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 25: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s mediumtext", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 26: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s longtext", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 27: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s binary(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 28: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s varbinary(%d)", eSQL::EscapeString[0], eSQL::EscapeString[1], Length);
- case 29: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s point", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 30: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s linestring", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 31: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s polygon", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 32: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s geometry", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 33: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s multipoint", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 34: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s multilinestring", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 35: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s multipolygon", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 36: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s geometrycollection", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- case 37: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s enum(%s)", eSQL::EscapeString[0], eSQL::EscapeString[1],eSQL::Values);
- case 38: format(eSQL::Query, 512, "ALTER TABLE %s ADD COLUMN %s set(%s)", eSQL::EscapeString[0], eSQL::EscapeString[1],eSQL::Values);
- }
- return mysql_query(eSQL::Query, -1, -1, connectionHandle);
- }
- /******************************************************************************
- --- eSQL_DeleteField(Table[], FieldName[], connectionHandle = 1);
- Entfernt eine Spalte aus einer Tabelle.
- Table[] - Die Tabelle in der eine Spalte entfernt werden soll.
- FieldName[] - Der name der Spalte
- Rückgabe: 1 wenn erfolgreich, 0 wenn nicht.
- ******************************************************************************/
- stock eSQL_DeleteField(Table[], FieldName[], connectionHandle = 1)
- {
- new eSQL::Query[512],eSQL::EscapeString[2][512];
- mysql_real_escape_string(Table, eSQL::EscapeString[0]);
- mysql_real_escape_string(FieldName, eSQL::EscapeString[1]);
- format(eSQL::Query, 512, "ALTER TABLE %s DROP COLUMN %s", eSQL::EscapeString[0], eSQL::EscapeString[1]);
- return mysql_query(eSQL::Query, -1, -1, connectionHandle);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement