Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Code:
- public MySql_Init()
- {
- // we tell the API that this is the information we want to connect to,
- // just not yet. basically it's like storing it in global variables
- g_SqlTuple = SQL_MakeDbTuple(Host,Userz,Pass,Db)
- // ok, we're ready to connect
- new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
- if(SqlConnection == Empty_Handle)
- // stop the plugin with an error message
- set_fail_state(g_Error)
- new Handle:Queries
- // we must now prepare some random queries
- Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS tutorial (steamid varchar(32),exp INT(11))")
- if(!SQL_Execute(Queries))
- {
- // if there were any problems the plugin will set itself to bad load.
- SQL_QueryError(Queries,g_Error,charsmax(g_Error))
- set_fail_state(g_Error)
- }
- // Free the querie
- SQL_FreeHandle(Queries)
- // you free everything with SQL_FreeHandle
- SQL_FreeHandle(SqlConnection)
- }
- //public plugin_end()
- //{
- // free the tuple - note that this does not close the connection,
- // since it wasn't connected in the first place
- // SQL_FreeHandle(g_SqlTuple)
- //}
- public Load_MySql(id)
- {
- new szName[32], szTemp[512]
- get_user_name(id, szName, charsmax(szName))
- new Data[1]
- Data[0] = id
- //we will now select from the table `tutorial` where the steamid match
- format(szTemp,charsmax(szTemp),"SELECT * FROM `zmescape` WHERE (`escapes`.`name` = '%s')", szName)
- SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
- }
- public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
- {
- if(FailState == TQUERY_CONNECT_FAILED)
- {
- log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error)
- }
- else if(FailState == TQUERY_QUERY_FAILED)
- {
- log_amx("Load Query failed. [%d] %s", Errcode, Error)
- }
- new id
- id = Data[0]
- if(SQL_NumResults(Query) < 1)
- {
- //.if there are no results found
- new szName[32]
- get_user_name(id, szName, charsmax(szName)) // get user's steamid
- // if its still pending we can't do anything with it
- if (equal(szName,"ID_PENDING"))
- return PLUGIN_HANDLED
- new szTemp[512]
- // now we will insturt the values into our table.
- format(szTemp,charsmax(szTemp),"INSERT INTO `zmescape` ( `name` , `escapes`)VALUES ('%s','0');",szName)
- SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
- }
- else
- {
- // if there are results found
- escapes[id] = SQL_ReadResult(Query, 1)
- }
- return PLUGIN_HANDLED
- }
- public Save_MySql(id)
- {
- new szName[32], szTemp[512]
- get_user_name(id, szName, charsmax(szName))
- // Here we will update the user hes information in the database where the steamid matches.
- format(szTemp,charsmax(szTemp),"UPDATE `zmescape` SET `escapes` = '%i' WHERE `escapes`.`name` = '%s';",escapes[id], szName)
- SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
- }
- As you see plugin_end function is quoted because it gives me error : [MySQL] Invalid handle: 0
- The variable: [B]escapes[/B] just does not saves.. I haven't got any errors from the plugin.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement