Jump to content

andeijm

Members
  • Posts

    2
  • Joined

  • Last visited

andeijm's Achievements

I ordered some spaghetti with marinara sauce and I got egg noodles and ketchup. I'm an average nobody.

I ordered some spaghetti with marinara sauce and I got egg noodles and ketchup. I'm an average nobody. (2/54)

0

Reputation

  1. Hello everyone! Can't connect to my database connection.lua -- connection settings hostname = get( "hostname" ) username = get( "username" ) password = get( "password" ) database = get( "database" ) port = tonumber( get( "port" ) ) -- global things local MySQLConnection = nil local resultPool = { } local queryPool = { } local sqllog = false local countqueries = 0 function getMySQLUsername() return username end function getMySQLPassword() return password end function getMySQLDBName() return db end function getMySQLHost() return host end function getMySQLPort() return port end -- connectToDatabase - Internal function, to spawn a DB connection function connectToDatabase(res) outputDebugString("--DATABASE CREDENTIALS--") outputDebugString("--HOST: "..(hostname or "Error")) outputDebugString("--DB: "..(database or "Error")) outputDebugString("--USER: "..(username or "Error")) outputDebugString("--PW: "..(password and "***********" or "Error")) outputDebugString("--PORT: "..(port or "Error")) outputDebugString("--RESULT: ") MySQLConnection = mysql_connect(hostname, username, password, database, port) if (not MySQLConnection) then outputDebugString("Cannot connect to the database.") cancelEvent(true, "Cannot connect to the database.") return nil else outputDebugString("OK") 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 [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 not MySQLConnection or not mysql_ping(MySQLConnection) 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) --outputDebugString("[mySQL]...") 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 queryPool[resultid] = str 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 queryPool[resultid] = str 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) table.remove(queryPool, 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) if not (str) then return false end 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 getOpenQueryStr( resultid ) if (not queryPool[resultid]) then return false end return queryPool[resultid] end --Custom functions local function createWhereClause( array, required ) if not array then -- will cause an error if it's required and we wanna concat it. return not required and '' or nil end local strings = { } for i, k in pairs( array ) do table.insert( strings, "`" .. i .. "` = '" .. ( tonumber( k ) or escape_string( k ) ) .. "'" ) end return ' WHERE ' .. table.concat(strings, ' AND ') end function select( tableName, clause ) local array = {} local result = query( "SELECT * FROM " .. tableName .. createWhereClause( clause ) ) if result then while true do local a = fetch_assoc( result ) if not a then break end table.insert(array, a) end free_result( result ) return array end return false end function select_one( tableName, clause ) local a local result = query( "SELECT * FROM " .. tableName .. createWhereClause( clause ) .. ' LIMIT 1' ) if result then a = fetch_assoc( result ) free_result( result ) return a end return false end function insert( tableName, array ) local keyNames = { } local values = { } for i, k in pairs( array ) do table.insert( keyNames, i ) table.insert( values, tonumber( k ) or escape_string( k ) ) end local q = "INSERT INTO `"..tableName.."` (`" .. table.concat( keyNames, "`, `" ) .. "`) VALUES ('" .. table.concat( values, "', '" ) .. "')" return query_insert_free( q ) end function update( tableName, array, clause ) local strings = { } for i, k in pairs( array ) do table.insert( strings, "`" .. i .. "` = " .. ( k == mysql_null() and "NULL" or ( "'" .. ( tonumber( k ) or escape_string( k ) ) .. "'" ) ) ) end local q = "UPDATE `" .. tableName .. "` SET " .. table.concat( strings, ", " ) .. createWhereClause( clause, true ) return query_free( q ) end function delete( tableName, clause ) return query_free( "DELETE FROM " .. tableName .. createWhereClause( clause, true ) ) end The error [22-10-20 21:33:50] INFO: --DATABASE CREDENTIALS-- [22-10-20 21:33:50] INFO: --HOST: 46.105.63.90 [22-10-20 21:33:50] INFO: --DB: TCDB_4851 [22-10-20 21:33:50] INFO: --USER: TCDB_4851 [22-10-20 21:33:50] INFO: --PW: *********** [22-10-20 21:33:50] INFO: --PORT: 3306 [22-10-20 21:33:50] INFO: --RESULT: [22-10-20 21:33:50] ERROR: mysql/connection.lua:51: attempt to call global 'mysql_connect' (a nil value) [22-10-20 21:33:50] mysql restarted successfully Personally i don't even know where i should put my database credentials i changed hosting from tapleto to another one, i copied the gamemode and put it on the new one ftp and im using a new database btw.
×
×
  • Create New...