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 - 03.05.2010

Quote:
Originally Posted by ̘ᴄᴛȧᴄ̙
Better to use sscanf 2.0
Nah, mysql_fetch_field_row is better idea.

pawn Код:
public OnPlayerLogin(playerid,password[])
{
    mysql_real_escape_string(password,password);
    mysql_query("SELECT * FROM players WHERE id=%d AND password='%s' LIMIT 1");
    mysql_store_result();
   
    if(mysql_retrieve_row())
    {
        new result[128];
        mysql_fetch_field_row(result,"level"); PlayerInfo[playerid][pLevel] = strval(result);
        mysql_fetch_field_row(result,"admin"); PlayerInfo[playerid][pAdmin] = strval(result);
        //etc
    }
    else
    {
        SendClientMessage(playerid, COLOR_WHITE, " Wrong password.");
    }
   
    mysql_free_result();
    return 1;
}



Re: [REL] MySQL Plugin R4 (21/04/2010) - PawnNewCommer - 03.05.2010

$ЂЯĢ, thanks! but when i connect server and use /login command. I have message than password wrong( and in mysqlsql_log.txt i have this error:
Код:
[15:54:26] CMySQLHandler::Query(SELECT * FROM players WHERE id=%d AND password='%s' LIMIT 1) - An error has occured. (Error ID: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%d AND password='%s' LIMIT 1' at line 1)
This problem with password i am fix. But next problem - account data(level, money, admin level and etc) not loading... (



And what to do with string fields in onplayerlogin?

In the old script, it was this:

Код:
if (rcnt == 93) strmid(PlayerInfo[playerid][pMarriedTo], Field, 0, strlen(Field), 255);
And now I've done on anologii with your script is:

Код:
mysql_fetch_field_row(result,"MarriedTo"); PlayerInfo[playerid][pMarriedTo] = strmid(PlayerInfo[playerid][pMarriedTo], result, 0, strlen(result), 255);
that right?



Re: [REL] MySQL Plugin R4 (21/04/2010) - Alec24 - 03.05.2010

Hello, How can I do a wildcard search on a name.
Here is the current query:

SELECT Name,PhoneNumber FROM players WHERE Name=%%%s%%

I think the %% = one % in PAWN and I think again that % = wildcard in MySQL.
So would it be %% %s %% for "(anything)search term(anything)"?


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

@PawnNewCommer,

1. Ah what a fail, you need to format query. You can also use that array 'query' instead of 'result' now, so you don't need to open new 128 cells big one.
Код:
new query[128]; mysql_real_escape_string(password,password);
format(query,sizeof(query),"SELECT * FROM players WHERE id=%d AND password='%s' LIMIT 1",PlayerInfo[playerid][pSQLID],password);
mysql_query(query);
...
2. It should be like this:
Код:
mysql_fetch_field_row(PlayerInfo[playerid][pMarriedTo],"MarriedTo");
------------------------
@AlecRae,
I think this would work
Код:
SELECT Name,PhoneNumber FROM players WHERE Name LIKE '%%%s%%'



Re: [REL] MySQL Plugin R4 (21/04/2010) - Alec24 - 03.05.2010

Quote:
@AlecRae,
I think this would work
Код:
SELECT Name,PhoneNumber FROM players WHERE Name LIKE '%%%s%%'
Do you think I will still need the %% at each side?
What about:
Код:
SELECT Name,PhoneNumber FROM players WHERE Name LIKE '%s'



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

I tried
Код:
SELECT Name,PhoneNumber FROM players WHERE Name LIKE '%%%s%%'
and it works.

Код:
SELECT Name,PhoneNumber FROM players WHERE Name LIKE '%s'
same as
Код:
SELECT Name,PhoneNumber FROM players WHERE Name='%s'



Re: [REL] MySQL Plugin R4 (21/04/2010) - Alec24 - 03.05.2010

Quote:
Originally Posted by $ЂЯĢ
I tried
Код:
SELECT Name,PhoneNumber FROM players WHERE Name LIKE '%%%s%%'
and it works.

Код:
SELECT Name,PhoneNumber FROM players WHERE Name LIKE '%s'
same as
Код:
SELECT Name,PhoneNumber FROM players WHERE Name='%s'
Ok thanks, so they are all the same.
One last question: How can I ignore the case of the variable at %s?


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

It's case sensitive by default.


Re: [REL] MySQL Plugin R4 (21/04/2010) - Alec24 - 03.05.2010

Quote:
Originally Posted by $ЂЯĢ
It's case sensitive by default.
I meant case insensitive though? Will it find "Alec" if I type "ALEC"?

Also:
Код:
format(query, sizeof(query), "SELECT Name,PhoneNumber FROM players WHERE Name LIKE '%%%s%%'", tmp);
mysql_query(query);
mysql_store_result();
new totalResults = mysql_num_rows();
		
if(totalResults == 0)
{
	format(string,sizeof(string),"There was 0 phone numbers found for the name: '%s'.", tmp);
	SendClientMessage(playerid, COLOUR_WHITE, string);
	return 1;
}
		
format(string,sizeof(string),"There was %d phone numbers found for the name: '%s', they are listed below:", totalResults, tmp);
SendClientMessage(playerid, COLOUR_WHITE, string);
		
new ResultName[MAX_PLAYER_NAME], ResultNumber[20];
		
while(mysql_retrieve_row())
{
	mysql_fetch_field_row(ResultName, "Name");
	mysql_fetch_field_row(ResultNumber, "PhoneNumber");
		  
	if(strval(ResultNumber) > 0)
	{
		format(string,sizeof(string),"%s - %d", ResultName, strval(ResultNumber));
		SendClientMessage(playerid, COLOUR_WHITE, string);
	}
}
		
mysql_free_result();
Why does this code say it found 7 numbers but only display 2 of them?

There is no more shown.


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

Their 'PhoneNumber' isn't higher than 0 then. That's the only thing which could stop displaying other results.


Re: [REL] MySQL Plugin R4 (21/04/2010) - Burridge - 10.05.2010

You're not meant to put the port in with the IP, you just place the IP, and it connects automatically AFAIK.


Re: [REL] MySQL Plugin R4 (21/04/2010) - GTA_Rules - 13.05.2010

Hello,

Ever since I updated to the new version of the plugin I can't connect to the MySQL server any more.

Код:
[17:54:56] CMySQLHandler::Connect() - Can't connect to MySQL server on 'localhost' (111) (Error ID: 2002)
I pasted the new natives, I renamed the old plugin & uploaded the new one.
I then changed 'localhost' to '127.0.0.1' and I got this error:

Код:
[17:54:56] CMySQLHandler::Connect() - Can't connect to MySQL server on '127.0.0.1' (111) (Error ID: 2003)
I didn't change any setting, so I have no clue wth is wrong. Anyone?


Re: [REL] MySQL Plugin R4 (21/04/2010) - cAMo - 16.05.2010

Is mysql_log.txt reachable by external users?


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

Quote:
Originally Posted by cAMo
Is mysql_log.txt reachable by external users?
What do you mean?


Re: [REL] MySQL Plugin R4 (21/04/2010) - cAMo - 16.05.2010

Since the file is stored on my server, could someone navigate to it and download it?

Also: The libmysqlclient.so.15 link is broken. Where can I get a 32-bit Linux file?


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

Quote:
Originally Posted by cAMo
Since the file is stored on my server, could someone navigate to it and download it?
If you are stupid enough and you have server files in directory which is accessable from example via HTTP.


Re: [REL] MySQL Plugin R4 (21/04/2010) - cAMo - 16.05.2010

How would you prevent that? When I test my server it automatically writes it to the main dir...


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

Quote:
Originally Posted by cAMo
How would you prevent that? When I test my server it automatically writes it to the main dir...
What? If nobody can access your server folder, then nobody will steal your mysql log. If you are still scared you can disable it with mysql_debug(0).


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

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).


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

What is the most effective way to UPDATE mysql from over 100 PVar's?

How would you structure it?