Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function getSQLData()
- return "dbname=mtadev;host=127.0.0.1", "root", "********", "share=0"
- end
- -- connection settings
- local hostname = "127.0.0.1"
- local username ="root"
- local password = "*******"
- local database = "mtadev"
- local port = 3306
- -- global things.
- local MySQLConnection = nil
- local resultPool = { }
- local sqllog = false
- local countqueries = 0
- -- connectToDatabase - Internal function, to spawn a DB connection
- function connectToDatabase(res)
- MySQLConnection = mysql_connect(hostname, username, password, database, port)
- if (not MySQLConnection) then
- if (res == getThisResource()) then
- cancelEvent(true, "Cannot connect to the database.")
- end
- return nil
- end
- return nil
- end
- addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), connectToDatabase, false)
- -- destroyDatabaseConnection - Internal function, kill the connection if theres one.
- function destroyDatabaseConnection()
- if (not MySQLConnection) then
- return nil
- end
- mysql_close(MySQLConnection)
- return nil
- end
- addEventHandler("onResourceStop", getResourceRootElement(getThisResource()), destroyDatabaseConnection, false)
- -- do something usefull here
- function logSQLError(str)
- local message = str or 'N/A'
- outputDebugString("MYSQL ERROR "..mysql_errno(MySQLConnection) .. ": " .. mysql_error(MySQLConnection))
- exports['logs']:logMessage("MYSQL ERROR :O! [QUERY] " .. message .. " [ERROR] " .. mysql_errno(MySQLConnection) .. ": " .. mysql_error(MySQLConnection), 24)
- end
- function getFreeResultPoolID()
- local size = #resultPool
- if (size == 0) then
- return 1
- end
- for index, query in ipairs(resultPool) do
- if (query == nil) then
- return index
- end
- end
- return (size + 1)
- end
- ------------ EXPORTED FUNCTIONS ---------------
- function ping()
- if (mysql_ping(MySQLConnection) == false) then
- -- FUU, NO MOAR CONNECTION
- destroyDatabaseConnection()
- connectToDatabase(nil)
- if (mysql_ping(MySQLConnection) == false) then
- logSQLError()
- return false
- end
- return true
- end
- return true
- end
- function escape_string(str)
- if (ping()) then
- return mysql_escape_string(MySQLConnection, str)
- end
- return false
- end
- function query(str)
- if sqllog then
- exports['logs']:logMessage(str, 24)
- end
- countqueries = countqueries + 1
- if (ping()) then
- local result = mysql_query(MySQLConnection, str)
- if (not result) then
- logSQLError(str)
- return false
- end
- local resultid = getFreeResultPoolID()
- resultPool[resultid] = result
- return resultid
- end
- return false
- end
- function unbuffered_query(str)
- if sqllog then
- exports['logs']:logMessage(str, 24)
- end
- countqueries = countqueries + 1
- if (ping()) then
- local result = mysql_unbuffered_query(MySQLConnection, str)
- if (not result) then
- logSQLError(str)
- return false
- end
- local resultid = getFreeResultPoolID()
- resultPool[resultid] = result
- return resultid
- end
- return false
- end
- function query_free(str)
- local queryresult = query(str)
- if not (queryresult == false) then
- free_result(queryresult)
- return true
- end
- return false
- end
- function rows_assoc(resultid)
- if (not resultPool[resultid]) then
- return false
- end
- return mysql_rows_assoc(resultPool[resultid])
- end
- function fetch_assoc(resultid)
- if (not resultPool[resultid]) then
- return false
- end
- return mysql_fetch_assoc(resultPool[resultid])
- end
- function free_result(resultid)
- if (not resultPool[resultid]) then
- return false
- end
- mysql_free_result(resultPool[resultid])
- table.remove(resultPool, resultid)
- return nil
- end
- -- incase a nub wants to use it, FINE
- function result(resultid, row_offset, field_offset)
- if (not resultPool[resultid]) then
- return false
- end
- return mysql_result(resultPool[resultid], row_offset, field_offset)
- end
- function num_rows(resultid)
- if (not resultPool[resultid]) then
- return false
- end
- return mysql_num_rows(resultPool[resultid])
- end
- function insert_id()
- return mysql_insert_id(MySQLConnection) or false
- end
- function query_fetch_assoc(str)
- local queryresult = query(str)
- if not (queryresult == false) then
- local result = fetch_assoc(queryresult)
- free_result(queryresult)
- return result
- end
- return false
- end
- function query_rows_assoc(str)
- local queryresult = query(str)
- if not (queryresult == false) then
- local result = rows_assoc(queryresult)
- free_result(queryresult)
- return result
- end
- return false
- end
- function query_insert_free(str)
- local queryresult = query(str)
- if not (queryresult == false) then
- local result = insert_id()
- free_result(queryresult)
- return result
- end
- return false
- end
- function escape_string(str)
- return mysql_escape_string(MySQLConnection, str)
- end
- function debugMode()
- if (sqllog) then
- sqllog = false
- else
- sqllog = true
- end
- return sqllog
- end
- function returnQueryStats()
- return countqueries
- -- maybe later more
- end
- function createConnect()
- if(MySQLConnection) then
- return MySQLConnection
- else
- return nil
- end
- end
- --------------------------------------------
- -- Kapcsolódási adatok
- local host = hostname
- local felhasznalonev = username
- local jelszo = password
- local adatbazis = database
- --local port = 3306
- local MySqlCsatlakozas = nil
- local QueryLogolas = false
- function csatlakozasAzAdatbazishoz(res)
- MySqlCsatlakozas = dbConnect( "mysql", "dbname="..adatbazis..";host="..host, felhasznalonev, jelszo, "charset=utf8" )
- if (not MySqlCsatlakozas) then
- if (res == getThisResource()) then
- cancelEvent(true, "Nem sikerült elérni az adatbázist")
- end
- return nil
- end
- return nil
- end
- addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), csatlakozasAzAdatbazishoz, false)
- -- destroyDatabaseConnection - Internal function, kill the connection if theres one.
- function lecsatlakozasAzAdatbazisrol()
- if (not MySqlCsatlakozas) then
- return nil
- end
- MySqlCsatlakozas = nil
- return nil
- end
- addEventHandler("onResourceStop", getResourceRootElement(getThisResource()), lecsatlakozasAzAdatbazisrol, false)
- function kapcsolatCallback()
- if(MySqlCsatlakozas) then
- return MySqlCsatlakozas
- else
- return nil
- end
- end
- ------------------------------------------------------
- local sqlDatas = {
- ["host"] = "127.0.0.1",
- ["user"] = "root",
- ["pw"] = "*******",
- ["database"] = "mtadev",
- }
- function getSQLDatas()
- return sqlDatas
- end
- addEventHandler("onResourceStart", resourceRoot, function()
- dbHandler = dbConnect("mysql","dbname=".. getSQLDatas()["database"] ..";host="..getSQLDatas()["host"], getSQLDatas()["user"], getSQLDatas()["pw"], "autoreconnect=1")
- if not dbHandler then
- outputChatBox("Mysql kapcsolódás meghiúsult")
- cancelEvent(true)
- end
- end)
- function getConnection()
- return dbHandler
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement