SA-MP Forums Archive
String not saving in database - 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: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: String not saving in database (/showthread.php?tid=627040)



String not saving in database - DerickClark - 23.01.2017

When i /setmessage then leave the server. and come back to the server it loaded good
but in my database under personalmsg it's blank. not display in database
Database photo:

User Account
Stucture

When the account loaded:

Код:
forward OnAccountLoad(playerid);
public OnAccountLoad(playerid)
{
    cache_get_value_name_int(0, "personalmsg", PlayerInfo[playerid][personalmsg]);
    return true;
}
Server Prints:

Код:
UPDATE `accounts` SET `Score`= 71415, `Admin`= 2 , `personalmsg`= test WHERE `ID` = '1'
OnPlayerDisconnect:

Код:
mysql_format(mysql, query, sizeof(query), "UPDATE `accounts` SET `Score`= %i, `Admin`= %i , `personalmsg`= %s WHERE `ID` = '%d'", GetPlayerScore(playerid), PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][personalmsg], PlayerInfo[playerid][ID]);
Command:

Код:
CMD:setmessage(playerid,params[])
{
	new Message[128], string[128];
    if(sscanf(params,"s[128]", Message)) return SendClientMessage(playerid, -1, "Usage: /setmessage [custom_message]");
   	format(string, sizeof(string), "You have set your Join Message to: %s", Message);
	SendClientMessage(playerid, -1, string);
	format(PlayerInfo[playerid][personalmsg], 128, "%s", Message);

	return 1;
}



Re: String not saving in database - saffierr - 23.01.2017

Hmm, are you sure you have set personalmsg in the table as 'VARCHAR' ?


Re: String not saving in database - DerickClark - 23.01.2017

Quote:
Originally Posted by saffierr
Посмотреть сообщение
Hmm, are you sure you have set personalmsg in the table as 'VARCHAR' ?
yes



Saved in database - worked!

Loaded in database - worked!

display in database - failed! [Reason: under personalmsg it's blank.]


Re: String not saving in database - saffierr - 23.01.2017

Check your mysql_log.txt


Re: String not saving in database - DerickClark - 23.01.2017

Quote:
Originally Posted by saffierr
Посмотреть сообщение
Check your mysql_log.txt
Код:
[20:27:38] [plugins/mysql] error #1054 while executing query "UPDATE `accounts` SET `Score`= 0, `Admin`= 0 , `personalmsg`= Test WHERE `ID` = '5'": Unknown column 'Test' in 'field list'



Re: String not saving in database - X337 - 23.01.2017

Код:
mysql_format(mysql, query, sizeof(query), "UPDATE `accounts` SET `Score`= %i, `Admin`= %i , `personalmsg`= '%e' WHERE `ID` = '%d'", GetPlayerScore(playerid), PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][personalmsg], PlayerInfo[playerid][ID]);
You need to put quotes for string type in mysql query.
And also use '%e' instead of '%s' as players can set their personalmsg.


Re: String not saving in database - DerickClark - 23.01.2017

Quote:
Originally Posted by X337
Посмотреть сообщение
Код:
mysql_format(mysql, query, sizeof(query), "UPDATE `accounts` SET `Score`= %i, `Admin`= %i , `personalmsg`= '%e' WHERE `ID` = '%d'", GetPlayerScore(playerid), PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][personalmsg], PlayerInfo[playerid][ID]);
You need to put quotes for string type in mysql query.
And also use '%e' instead of '%s' as players can set their personalmsg.
I have a problem. If i delete my account in database The ID count don't reset to 0 it adds up,


Re: String not saving in database - saffierr - 23.01.2017

That is Auto_Increment bro

You can send a query to the table:

PHP код:
ALTER TABLE `tableAUTO_INCREMENT 



Re: String not saving in database - DerickClark - 23.01.2017

Quote:
Originally Posted by X337
Посмотреть сообщение
Код:
mysql_format(mysql, query, sizeof(query), "UPDATE `accounts` SET `Score`= %i, `Admin`= %i , `personalmsg`= '%e' WHERE `ID` = '%d'", GetPlayerScore(playerid), PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][personalmsg], PlayerInfo[playerid][ID]);
You need to put quotes for string type in mysql query.
And also use '%e' instead of '%s' as players can set their personalmsg.
Код:
mysql_format(mysql, query, sizeof(query), "UPDATE `accounts` SET `Score`= %i, `Admin`= %i , `personalmsg`= %e WHERE `ID` = '%d'", GetPlayerScore(playerid), PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][personalmsg], PlayerInfo[playerid][ID]);
Код:
[21:06:31] [plugins/mysql] error #1054 while executing query "UPDATE `accounts` SET `Score`= 0, `Admin`= 0 , `personalmsg`= test WHERE `ID` = '9'": Unknown column 'test' in 'field list'
@saffierr

SQL query:


Код:
Error
SQL query:


ALTER TABLE `table` AUTO_INCREMENT = 0
MySQL said: Documentation

#1146 - Table 'tw_server.table' doesn't exist



Re: String not saving in database - saffierr - 23.01.2017

Did you actually use the name 'table' for your table lol?
Replace 'table' with `accounts`