Я сделал подключение к базе данных через MYSQL. Но в базе данных вместо имени (логина) ничего не пишется. То есть пишется ИД, логин (нет) и пароль.
enum player
{
ID, //?? ????????
}
new player_info[MAX_PLAYERS][player];
public OnPlayerConnect(playerid)
{
SCM(playerid, 0x00FF40AA, "????? ?????????? ?? Hydra RolePplay!");
SetTimerEx("player_connect", 700, false, "i", playerid);
return 1;
}
forward player_connect(playerid);
public player_connect(playerid)
{
static const fmt_query[] = "SELECT `id` FROM `accounts` WHERE `login` = '%s'";
new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)];
format(query, sizeof(query), fmt_query, sendername(playerid));
mysql_tquery(dbHandle, query, "player_check", "ii", playerid, 0);
return 1;
}
forward player_check(playerid);
public player_check(playerid)
{
new rows;
cache_get_row_count(rows);
if(rows) show_login(playerid);
else show_register(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case 1:
{
if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 16)
{
show_register(playerid);
}
else
{
new query[128], temp[16];
mysql_escape_string(inputtext, temp);
format(query, sizeof(query), "INSERT INTO `accounts` (`login`, `password`) VALUES ('%s','%s')", sendername(playerid), temp);
mysql_query(dbHandle, query);
format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `login` = '%s' AND `password` = '%s' LIMIT 1", sendername(playerid), temp);
mysql_tquery(dbHandle, query, "player_login", "i", playerid);
}
}
}
return 1;
}
То есть. Регистрация произошла. Но при регистрации не указался логин в базе данных