SA-MP Forums Archive
[Plugin] [REL] MySQL Plugin (Now on github!) - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Plugin Development (https://sampforum.blast.hk/forumdisplay.php?fid=18)
+--- Thread: [Plugin] [REL] MySQL Plugin (Now on github!) (/showthread.php?tid=56564)



Re: [REL] MySQL Plugin R4 (21/04/2010) - Sergei - 17.05.2010

Quote:
Originally Posted by xcasio
Is there any reason as to why mysql_reconnect() returns the following: (two attempts)

[22:52:46] >> mysql_reconnect( Connection handle: 0 )
[22:52:46] >> mysql_reconnect() - Invalid connection handle. (You set: 0, Highest connection handle ID is 0).
[22:52:46] >> mysql_reconnect( Connection handle: 1 )
[22:52:46] >> mysql_reconnect() - Invalid connection handle. (You set: 1, Highest connection handle ID is 0).
You haven't even connected at the first place?

Quote:
Originally Posted by cAMo
What is the most effective way to UPDATE mysql from over 100 PVar's?
How would you structure it?
Depends. I'm sure at least 3/4 of those PVars aren't being changed frequently or aren't changed at all, so I would update them when they change.


Re: [REL] MySQL Plugin R4 (21/04/2010) - xcasio - 17.05.2010

Quote:
Originally Posted by $ЂЯĢ
Quote:
Originally Posted by xcasio
Is there any reason as to why mysql_reconnect() returns the following: (two attempts)

[22:52:46] >> mysql_reconnect( Connection handle: 0 )
[22:52:46] >> mysql_reconnect() - Invalid connection handle. (You set: 0, Highest connection handle ID is 0).
[22:52:46] >> mysql_reconnect( Connection handle: 1 )
[22:52:46] >> mysql_reconnect() - Invalid connection handle. (You set: 1, Highest connection handle ID is 0).
You haven't even connected at the first place?
I have, decided to just use mysql_connect if it's dead (which if often is due to filterscripts often being reloaded).


[00:37:33] CMySQLHandler::ProcessQueryThread(UPDATE `players` SET `last_online` = NOW(), `admin_level` = 0 WHERE `id` = 72, Resultid: 1) - Data is getting passed to OnQueryFinish() - (Threadsafe: Yes)

Any why this didn't get called in OnQueryFinish? Happens once an hour or so.


Re: [REL] MySQL Plugin R4 (21/04/2010) - Sergei - 18.05.2010

If you use mysql_close then it's obvious you can't use mysql_reconnect.


Re: [REL] MySQL Plugin R4 (21/04/2010) - xcasio - 18.05.2010

Quote:
Originally Posted by $ЂЯĢ
If you use mysql_close then it's obvious you can't use mysql_reconnect.
Is that what happens when a filterscript is unloaded? There is no documentation on this anywhere.

_________________________________________________

Quote:

[00:37:33] CMySQLHandler::ProcessQueryThread(UPDATE `players` SET `last_online` = NOW(), `admin_level` = 0 WHERE `id` = 72, Resultid: 1) - Data is getting passed to OnQueryFinish() - (Threadsafe: Yes)

With a load of 150+ players threaded queries sometimes do not get called in OnQueryFinish. Any idea what the problem could be?


Thanks.


Re: [REL] MySQL Plugin R4 (21/04/2010) - Sergei - 18.05.2010

1. Do you use mysql_close() under OnFilterscriptExit?
2. How many different threads did you use? It's possible that you went over mysql server's connection limit.


Re: [REL] MySQL Plugin R4 (21/04/2010) - NewTorran - 18.05.2010

How do i select something (Done):

pawn Код:
new string[256];
format(string,sizeof(string),"SELECT `password` FROM `users` WHERE `username` = '%s'", GetName(playerid));
mysql_query(string);
And then how do i check if thats the same as what the player typed?


Re: [REL] MySQL Plugin R4 (21/04/2010) - Sergei - 18.05.2010

You don't do it like that.
pawn Код:
new string[128];
mysql_real_escape_string(password,password);
format(string,sizeof(string),"SELECT * FROM users WHERE username='%s' AND password='%s' LIMIT 1", GetName(playerid),password);
mysql_query(string);
If query gets any result then password was corrent and if it's doesn't it wasn't. I also suggest you to use MD5 hash (if you don't hash passwords with anything else).
Код:
SELECT * FROM users WHERE username='%s' AND password=MD5('%s') LIMIT 1
And I also suggest you to use threads for all queries for better performance.


Re: [REL] MySQL Plugin R4 (21/04/2010) - NewTorran - 18.05.2010

Why are you erm MD5 hashing it?


Re: [REL] MySQL Plugin R4 (21/04/2010) - Sergei - 18.05.2010

Quote:
Originally Posted by Joe Torran C
Why are you erm MD5 hashing it?
Protection? Nobody wants his/her password to be displayed.


Re: [REL] MySQL Plugin R4 (21/04/2010) - NewTorran - 18.05.2010

Quote:
Originally Posted by $ЂЯĢ
Quote:
Originally Posted by Joe Torran C
Why are you erm MD5 hashing it?
Protection? Nobody wants his/her password to be displayed.
Its not showing there password to anybody, Its seeing if it matches what they typed


Re: [REL] MySQL Plugin R4 (21/04/2010) - Sergei - 18.05.2010

Field (password): 4555c0928f443107d66461f99af5c756 (md5 hashed)
Now someone's input is 'mypass555'. If you want to compare you need to hash it of course.


Re: [REL] MySQL Plugin R4 (21/04/2010) - NewTorran - 18.05.2010

No because when i create the account i dont hash the password


Re: [REL] MySQL Plugin R4 (21/04/2010) - Sergei - 18.05.2010

Quote:
Originally Posted by Joe Torran C
No because when i create the account i dont hash the password
You should do that. I don't think that your players would like that you (or anyone else) see their passwords in plain text.


Re: [REL] MySQL Plugin R4 (21/04/2010) - NewTorran - 18.05.2010

Quote:
Originally Posted by $ЂЯĢ
Quote:
Originally Posted by Joe Torran C
No because when i create the account i dont hash the password
You should do that. I don't think that your players would like that you (or anyone else) see their passwords in plain text.
Ok well does anyone know any tutorials or anything to teach me how to make a creating/getting/updating thing for this
Because i tried with this one tutorial and its not a very good one, Anyone help? Thanks

Like it shows me how to create, get and update and explains what it is ect


Re: [REL] MySQL Plugin R4 (21/04/2010) - Sergei - 18.05.2010

Visit w3schools to learn about basic MySQL commands. And also, aren't you using StrickenKid's MySQL plugin?


Re: [REL] MySQL Plugin R4 (21/04/2010) - NewTorran - 18.05.2010

Quote:
Originally Posted by $ЂЯĢ
Visit w3schools to learn about basic MySQL commands. And also, aren't you using StrickenKid's MySQL plugin?
Im trying everyones MySQL plugin, See which one i can get to work

Also: http://w3schools.com/sql/default.asp
That the one?

[b]I HAVE FINALLY GOT SOME OF IT TO WORK!

pawn Код:
public MySQLRegister(playerid, password[])
{
    new query[256];
  format(query, sizeof(query), "INSERT INTO `users` (userid, username, password) VALUES(0, \"%s\", \"%s\")", GetName(playerid), password);
    samp_mysql_query(query);
    return 1;
}

CMD:register(playerid, params[])
{
    if(isnull(params)) return SendClientMessage(playerid, colorRed, "Usage: /register [password]");
   
    MySQLRegister(playerid, params);
    return 1;
}
Now for the login and il be on my way!


Re: [REL] MySQL Plugin R4 (21/04/2010) - Sergei - 18.05.2010

You should use ''''''''''''' not """""""""""""". Plus you should escape string to avoid sql injections.


Re: [REL] MySQL Plugin R4 (21/04/2010) - NewTorran - 18.05.2010

Quote:
Originally Posted by $ЂЯĢ
You should use ''''''''''''' not """""""""""""". Plus you should escape string to avoid sql injections.
Huh? XD
Anyway i got my register and login to work


Re: [REL] MySQL Plugin R4 (21/04/2010) - xcasio - 18.05.2010

Quote:
Originally Posted by $ЂЯĢ
1. Do you use mysql_close() under OnFilterscriptExit?
2. How many different threads did you use? It's possible that you went over mysql server's connection limit.
Hi,

I do not use mysql_close() in the OnFilterScriptExit callback, however from testing I have observed that the connection is automatically closed when a filterscript is unloaded.

As for the amount of threads, I am currently just bringing in MySQL into the script, so there are only 3 threaded queries, 2 of which are called frequently. There are also a few non-threaded queries which are also called frequently.


Thank you for your help.


Re: [REL] MySQL Plugin R4 (21/04/2010) - Sergei - 18.05.2010

Show how frequently you trigger them, what those functions do, etc.