Dimos7 Posted March 19, 2016 Share Posted March 19, 2016 (edited) --connection Settings local hostname = "127.0.0.1" local username = "root" local password = "" local database ="inrpg" local port = 3306 -- global things local MySQLConnection = nil local resultPool = { } local sqllog = false local countqueries = 0 -- connectToDatabse - Internal function, to spawn a DB connection function connectToDatabse(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 end addEventHandler("onResourceStart", resourceRoot, connectToDatabse) -- destroyDatabaseConnection - Internal function, to kill the connection if theres one function destroyDatabaseConnection() if (not MySQLConnection) then return nil end mysql_close(MySQLConnection) return nil end addEventHandler("onResourceStop", resourceRoot, destroyDatabaseConnection) -- do something useful here function logSQLError(str) local message = str or "N/A" outputDebugString("MYSQL ERROR"..mysql_errno(MySQLConnection)..": "..mysql_error(MySQLConnection)) exports.logs:logMessage("MYSQL ERROR ! [QUERY]"..message.." [ERROR] "..mysql_errno(MySQLConnection)..": "..mysql_error(MySQLConnection), 19) end function getFreeRsultPoolID() 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 destroyDatabaseConnection() connectToDatabse(nil) if (mysql_ping(MySQLConnection) == false) then logSQLError() return false end return true end 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, 19) end countqueries = countqueries + 1 if (ping()) then local result = mysql_query(MySQLConnection, str) if (not result) then logSQLError(str) return false end local resultid = getFreeRsultPoolID() resultPool[resultid] = result return resultid end return false end function unbuffered_qyery(str) if sqllog then exports.logs:logMessage(str, 19) 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 = getFreeRsultPoolID() 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 return 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]) 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 end ERROR: Loading script failed: mysql\connection.lua:146: 'end' expected (to close 'function' at line 141) near 'table' Edited March 20, 2016 by Guest Link to comment
Bonus Posted March 19, 2016 Share Posted March 19, 2016 return mysql_free_result(resultPool[resultid]) table.remove(resultPool, resultid) return nil You know what "return" does right? Link to comment
Dimos7 Posted March 20, 2016 Author Share Posted March 20, 2016 Yes i do --connection Settings local hostname = "127.0.0.1" local username = "root" local password = "" local database ="inrpg" local port = 3306 -- global things local MySQLConnection = nil local resultPool = { } local sqllog = false local countqueries = 0 -- connectToDatabse - Internal function, to spawn a DB connection function connectToDatabse(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 end addEventHandler("onResourceStart", resourceRoot, connectToDatabse) -- destroyDatabaseConnection - Internal function, to kill the connection if theres one function destroyDatabaseConnection() if (not MySQLConnection) then return nil end mysql_close(MySQLConnection) return nil end addEventHandler("onResourceStop", resourceRoot, destroyDatabaseConnection) -- do something useful here function logSQLError(str) local message = str or "N/A" outputDebugString("MYSQL ERROR"..mysql_errno(MySQLConnection)..": "..mysql_error(MySQLConnection)) exports.logs:logMessage("MYSQL ERROR ! [QUERY]"..message.." [ERROR] "..mysql_errno(MySQLConnection)..": "..mysql_error(MySQLConnection), 18) end function getFreeRsultPoolID() 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 destroyDatabaseConnection() connectToDatabse(nil) if (mysql_ping(MySQLConnection) == false) then logSQLError() return false end return true end 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, 18) end countqueries = countqueries + 1 if (ping()) then local result = mysql_query(MySQLConnection, str) if (not result) then logSQLError(str) return false end local resultid = getFreeRsultPoolID() resultPool[resultid] = result return resultid end return false end function unbuffered_qyery(str) if sqllog then exports.logs:logMessage(str, 18) 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 = getFreeRsultPoolID() 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]) 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 end ERROR: mysql\connection.lua:16: attempt to call global 'mysql_connect' (a nil value) Link to comment
Anubhav Posted March 20, 2016 Share Posted March 20, 2016 you probably need the MySQL module Link to comment
Dimos7 Posted March 20, 2016 Author Share Posted March 20, 2016 nvm not had put correct the module name Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now