MySQL R7 question
#1

Can I get the numer of rows in the same function with R7?

Why I need it? I have a function to check if an item exists in my DB, but how can i return something from it when it calls another function!



EDIT: few more questions related to MySQL:
1. Is it okay to create a function to update a field in MySQL, something like:
pawn Код:
stock UpdateField(playerid,fieldname[]) {
format(query,sizeof(query),"UPDATE db SET '%s' = something",fieldname);
2.When and for what reason should "mysql_real_escape_string" be used?
Reply
#2

bump
Reply
#3

I'm afraid I do not really understand your first question. You can write a constraint in the form of
PHP код:
INSERT INTO table (string1string2numberVALUES ('foo''bar'42ON DUPLICATE KEY UPDATE number 43
Not sure if that's what you want.

Second question; yes you may write something like that but it won't be very efficient if you're going to update multiple values at a time.

Third question; mysql_real_escape_string should be used for any and all user input. http://en.wikipedia.org/wiki/SQL_injection
Reply
#4

For the first question ill try to explain in examples:
So somewhere i have this:
pawn Код:
if(ExistsInMysql("Just some string")) { do something
And that function:
pawn Код:
stock ExistsInMysql(something[]) {
new query[50];
format(query,sizeof(query),"SELECT * FROM  Users WHERE Username='%s'",something);
mysql_function_query(db,query,true,"Loading","d",playerid);
}
forward Loading(playerid);
public Loading(playerid)
{
new rows,fields;
cache_get_data(rows,fields);
if(rows>0) // return something to the "if(Exists()" part
I hope you understand better. I want to return the result of "Loading" to where "stock ExistsInMysql(something[])" was called


Second question: thanks! Thats the thing i always send the full query with all the stats,even if i needed to update 1-2fields.


Third Question: but how do i use mysql_real_escape_string in samp? I dont understand WHAT do i have to escape.
pawn Код:
format(query,sizeof(query),"SELECT * FROM users WHERE useraname='%s' AND password='%s'",name,pass);
mysql_real_escape_string(name,name);
mysql_real_escape_string(pass,pass);
Is that valid? And it only need to be done for strings?
Reply
#5

Ah well, I'm afraid this isn't possible anymore with the threaded queries. You're going to have to move everything to a separate callback.

As for the escaping, that needs to be done before the data is inserted into the query. Doesn't make much sense otherwise. And it just needs to be done where user input is expected. If you have methods to filter numbers (sscanf, strval) then it isn't necessary to escape those.
Reply
#6

Thats bad news....What do you mean move everything to a separate callback?

Okay, i understand now!
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)