Jump to content

MTA RP Script SQL DB Problem [ Unsolved ] Please Help


micheal1230

Recommended Posts

Well When I Try To Register To MY Server It Says In Console, server event trigger register but event not added. Can you tell me how to fix this. I Removed The SQL Server passwords and stuff like that

SQL resource

Meta:

<meta> 
        <info author="vG MTA Scripting Team" type="script" description="MySQL"/> 
         
        <script src="s_mysql.lua" type="server"/> 
         
        <export function="getMySQLUsername" type="server"/> 
        <export function="getMySQLPassword" type="server"/> 
        <export function="getMySQLDBName" type="server"/> 
        <export function="getMySQLHost" type="server"/> 
        <export function="getMySQLPort" type="server"/> 
         
        <!-- above is legacy --> 
         
        <script src="connection.lua"        type="server" /> 
        <export function="ping"             type="server" http="false" /> 
        <export function="escape_string"    type="server" http="false" /> 
        <export function="query"            type="server" http="false" /> 
        <export function="unbuffered_query" type="server" http="false" /> 
        <export function="query_free"       type="server" http="false" /> 
        <export function="fetch_assoc"      type="server" http="false" /> 
        <export function="rows_assoc"       type="server" http="false" /> 
        <export function="free_result"      type="server" http="false" /> 
        <export function="result"           type="server" http="false" /> 
        <export function="num_rows"         type="server" http="false" /> 
        <export function="query_fetch_assoc"type="server" http="false" /> 
        <export function="query_rows_assoc" type="server" http="false" /> 
        <export function="insert_id"        type="server" http="false" /> 
        <export function="query_rows_assoc" type="server" http="false" /> 
        <export function="query_insert_free"type="server" http="false" /> 
        <export function="escape_string"    type="server" http="false" /> 
        <export function="debugMode"        type="server" http="false" /> 
        <export function="returnQueryStats" type="server" http="false" /> 
</meta> 
  

s_mysql.lua :

-- connection settings 
local hostname = "localhost" 
local username = "server" 
local password = "Y2wLDarPPRUReaTQ" 
local database = "rpserver" 
local port = tonumber( get( "port" ) ) or 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 ! [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 

Edited by Guest
Link to comment

Michael you need to download XAMMP from google look on google there should be a link then once installed type in your browser localhost it should show up this XAMMp click on phpmyadmin then make a database call it MTA:SA

and in the s_mysql.lua change it to this

-- connection settings 
local hostname = "localhost" 
local username = "root" 
local password = "" 
local database = "mta" 
local port = tonumber( get( "port" ) ) or 3306 

and the connection.lua to

some of these things above almost make a database called mta and import the file. Enjoy :)

Link to comment
You mean it says: "Client triggered server side event but event is not added server side.", something like that?

Yeah Thats What Comes Up, ill Come Back And Tell You If It Worked

Edit: No Its Hasnt Worked Same Problem

-- connection settings 
local hostname = "localhost" 
local username = "server" 
local password = "Y2wLDarPPRUReaTQ" 
local database = "rpserver" 
local port = tonumber( get( "port" ) ) or 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 ! [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 

Link to comment

Solid Can You Tell Me How To Fix This? Because One One By Del Is Not Working.

My Skype Is micheal.jones74

Here iS Server Sides In Acc System

local salt = "vgrpkeyscotland" 
mysql = exports.mysql 
  
-- //////////////////////////////////// 
-- //           MYSQL                // 
-- //////////////////////////////////// 
sqlUsername = exports.mysql:getMySQLUsername() 
sqlPassword = exports.mysql:getMySQLPassword() 
sqlDB = exports.mysql:getMySQLDBName() 
sqlHost = exports.mysql:getMySQLHost() 
sqlPort = exports.mysql:getMySQLPort() 
  
handler = mysql_connect(sqlHost, sqlUsername, sqlPassword, sqlDB, sqlPort) 
  
function checkMySQL() 
    if not (mysql_ping(handler)) then 
        handler = mysql_connect(sqlHost, sqlUsername, sqlPassword, sqlDB, sqlPort) 
    end 
end 
setTimer(checkMySQL, 300000, 0) 
  
function closeMySQL() 
    if (handler) then 
        mysql_close(handler) 
        handler = nil 
    end 
end 
addEventHandler("onResourceStop", getResourceRootElement(getThisResource()), closeMySQL) 
-- //////////////////////////////////// 
-- //           MYSQL END            // 
-- //////////////////////////////////// 
  
addEvent("attemptRegister", true) 
addEventHandler("attemptRegister", getRootElement(), 
function ( username, password ) 
    if not (string.len(password) < 5) then 
        local password = md5(salt .. password) 
         
        local safeusername = mysql:escape_string(username) 
        local safepassword = mysql:escape_string(password) 
         
        local result = mysql:query_fetch_assoc("SELECT username FROM accounts WHERE username = '" .. safeusername .. "'") 
        if not (result) then 
            local newquery = mysql:query_free("INSERT INTO accounts SET username = '" .. safeusername .. "', password = '" .. safepassword .. "', registerdate=NOW() ") 
            if (newquery) then 
                local newAppState = mysql:query_free("UPDATE accounts SET appstate = '3' WHERE username = '" .. safeusername .. "'") 
                triggerClientEvent(source, "informRegister1", source) 
            else 
                outputChatBox("Error - 007.", source, 255, 0, 0) 
            end 
        else 
            triggerClientEvent(source, "informRegister2", source) 
        end 
    else 
        triggerClientEvent(source, "informRegister3", source) 
    end 
end 
)    
     

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...