Jump to content

MYSQL


mint3d

Recommended Posts

Ok i have this MYSQL i am using that i have edited but it dosent seem to connect

[2013-07-01 23:55:06] ERROR: mysql/connection.lua:16: attempt to call global 'mysql_connect' (a nil value)

[2013-07-01 23:55:06] ERROR: mysql/connection.lua:62: attempt to call global 'mysql_ping' (a nil value)

[2013-07-01 23:55:06] ERROR: call: failed to call 'mysql:query' [string "?"]

-- connection settings 
local hostname = get( "hostname" ) or "localhost" 
local username = get( "username" ) or "db38" 
local password = get( "password" ) or "86kapfhqcycxsxgn7gazc" 
local database = get( "database" ) or "db38" 
local port = tonumber( get( "port" ) ) or 3306 
  
-- global things. 
local MySQLConnection = nil 
local resultPool = { } 
local queryPool = { } 
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 
        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) 
    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 

Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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