sylver Posted September 19, 2010 Share Posted September 19, 2010 Hi i installed mta paradise in my server i have mysql problem [21:46:59] ERROR: ...ate/tfcklan1/mods/deathmatch/resources/sql/mysql.lua:35: bad argument #1 to 'mysql_connect' (string expected, got nil) [21:46:59] ERROR: call: failed to call 'sql:query_assoc_single' [21:46:59] ERROR: ...ate/tfcklan1/mods/deathmatch/resources/sql/mysql.lua:35: bad argument #1 to 'mysql_connect' (string expected, got nil) [21:46:59] ERROR: call: failed to call 'sql:query_assoc_single' Link to comment
Castillo Posted September 19, 2010 Share Posted September 19, 2010 do you have the MySQL module and a MySQL server running? Link to comment
dzek (varez) Posted September 19, 2010 Share Posted September 19, 2010 i assume he have it: bad argument #1 to 'mysql_connect' (string expected, got nil) without mysql module it won't know that mysql_connect is expecting string and as you can see: no strings are send to mysql_connect so i think there is something wrong with resource that calls mysql_connect, OR no mysql configuration is set. Link to comment
sylver Posted September 19, 2010 Author Share Posted September 19, 2010 I install modules [21:46:56] MODULE: Loaded "MySQL 5.0 database module" (0.41) by "Alberto Alonso <[email protected]>" [21:46:56] MODULE: Loaded "SHA Module" (1.02) by "mabako" [21:46:56] MODULE: Loaded "Sockets Module" (0.10) by "Gamesnert, mabako, MCvarial & x86" [21:46:59] ERROR: ...ate/tfcklan1/mods/deathmatch/resources/sql/mysql.lua:35: bad argument #1 to 'mysql_connect' (string expected, got nil) [21:46:59] ERROR: call: failed to call 'sql:query_assoc_single' [21:46:59] ERROR: ...ate/tfcklan1/mods/deathmatch/resources/sql/mysql.lua:35: bad argument #1 to 'mysql_connect' (string expected, got nil) [21:46:59] ERROR: call: failed to call 'sql:query_assoc_single' Link to comment
dzek (varez) Posted September 19, 2010 Share Posted September 19, 2010 do you have MySQL server? and did you configured database IP, name, login, password? Link to comment
sylver Posted September 19, 2010 Author Share Posted September 19, 2010 Yes i have ... I am configuring database local connection = nil local connection = nil local null = nil local results = { } local max_results = 128 -- connection functions local function connect( ) -- retrieve the settings local server = get( "server" ) or "localhost" local user = get( "user" ) or "****" local password = get( "password" ) or "****" local db = get( "database" ) or "****" local port = get( "port" ) or 3306 local socket = get( "socket" ) or nil -- connect connection = mysql_connect ( localhost, ****,****, ****, 3306, socket ) if connection then return true else outputDebugString ( "Connection to MySQL Failed.", 1 ) return false end end local function disconnect( ) if connection and mysql_ping( connection ) then mysql_close( connection ) end end local function checkConnection( ) if not connection or not mysql_ping( connection ) then return connect( ) end return true end addEventHandler( "onResourceStart", resourceRoot, function( ) if not mysql_connect then if hasObjectPermissionTo( resource, "function.shutdown" ) then shutdown( "MySQL module missing." ) end cancelEvent( true, "MySQL module missing." ) elseif not hasObjectPermissionTo( resource, "function.mysql_connect" ) then if hasObjectPermissionTo( resource, "function.shutdown" ) then shutdown( "Insufficient ACL rights for mysql resource." ) end cancelEvent( true, "Insufficient ACL rights for mysql resource." ) elseif not connect( ) then if connection then outputDebugString( mysql_error( connection ), 1 ) end if hasObjectPermissionTo( resource, "function.shutdown" ) then shutdown( "MySQL failed to connect." ) end cancelEvent( true, "MySQL failed to connect." ) else null = mysql_null( ) end end ) addEventHandler( "onResourceStop", resourceRoot, function( ) for key, value in pairs( results ) do mysql_free_result( value.r ) outputDebugString( "Query not free()'d: " .. value.q, 2 ) end disconnect( ) end ) -- function escape_string( str ) if type( str ) == "string" then return mysql_escape_string( connection, str ) elseif type( str ) == "number" then return tostring( str ) end end function query( str, ... ) checkConnection( ) if ( ... ) then local t = { ... } for k, v in ipairs( t ) do t[ k ] = escape_string( tostring( v ) ) or "" end str = str:format( unpack( t ) ) end local result = mysql_query( connection, str ) if result then for num = 1, max_results do if not results[ num ] then results[ num ] = { r = result, q = str } return num end end mysql_free_result( result ) return false, "Unable to allocate result in pool" end return false, mysql_error( connection ) end function query_free( str, ... ) checkConnection( ) if ( ... ) then local t = { ... } for k, v in ipairs( t ) do t[ k ] = escape_string( tostring( v ) ) or "" end str = str:format( unpack( t ) ) end local result = mysql_query( connection, str ) if result then mysql_free_result( result ) return true end return false, mysql_error( connection ) end function free_result( result ) if results[ result ] then mysql_free_result( results[ result ].r ) results[ result ] = nil end end function query_assoc( str, ... ) local t = { } local result, error = query( str, ... ) if result then for result, row in mysql_rows_assoc( results[ result ].r ) do local num = #t + 1 t[ num ] = { } for key, value in pairs( row ) do if value ~= null then t[ num ][ key ] = tonumber( value ) or value end end end free_result( result ) return t end return false, error end function query_assoc_single( str, ... ) local t = { } local result, error = query( str, ... ) if result then local row = mysql_fetch_assoc( results[ result ].r ) if row then for key, value in pairs( row ) do if value ~= null then t[ key ] = tonumber( value ) or value end end free_result( result ) return t end free_result( result ) return false end return false, error end function query_insertid( str, ... ) local id = false local result, error = query( str, ... ) if result then id = mysql_insert_id( connection ) free_result( result ) return id end return false, error end I have server and mysql in Germany. Link to comment
dzek (varez) Posted September 19, 2010 Share Posted September 19, 2010 this is wrong and causing error: connection = mysql_connect ( localhost, ****,****, ****, 3306, socket ) you should only edit lines 10-15 revert line 18 to original, and don't touch anything you dont have idea of. 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