Помогите с MySQL R7 -
Optimus_Sprite - 23.08.2012
Пожалуйста помогите, отправляю запрос:
pawn Код:
mysql_format(database, string, "SELECT * FROM `Accounts` WHERE Name = '%s'", PlayerName);
mysql_store_result();
Дальше:
pawn Код:
switch(mysql_num_rows()) {
case 0: // регистрация при отсутствии строки в таблице
case 1: // авторизация если одна строка есть
}
Но, вот дебаг:
Код:
>> mysql_format( Connection handle: 1 )
>> mysql_store_result( Connection handle: 1 )
CMySQLHandler::StoreResult() - No data to store.
Подскажите, что не так.
Строка аккаунта в таблице присутствует, но авторизация не появляется.
А если строки нет, то нет регистрации.
Re: Помогите с MySQL R7 -
TRPG - 23.08.2012
Quote:
Originally Posted by Optimus_Sprite
Пожалуйста помогите, отправляю запрос:
pawn Код:
mysql_format(database, string, "SELECT * FROM `Accounts` WHERE Name = '%s'", PlayerName); mysql_store_result();
Дальше:
pawn Код:
switch(mysql_num_rows()) { case 0: // регистрация при отсутствии строки в таблице case 1: // авторизация если одна строка есть }
Но, вот дебаг:
Код:
>> mysql_format( Connection handle: 1 )
>> mysql_store_result( Connection handle: 1 )
CMySQLHandler::StoreResult() - No data to store.
Подскажите, что не так.
Строка аккаунта в таблице присутствует, но авторизация не появляется.
А если строки нет, то нет регистрации.
|
Вы забываете запрос отправить перед тем как начинаете работать с его результатами. mysql_format это тот же format, после него используйте mysql_function_query(... и только потом, когда запрос пройдет и вызовется указанный в mysql_function_query паблик, используйте switch(mysql_num_rows()) {...
Re: Помогите с MySQL R7 -
Optimus_Sprite - 23.08.2012
Quote:
Originally Posted by TRPG
Вы забываете запрос отправить перед тем как начинаете работать с его результатами. mysql_format это тот же format, после него используйте mysql_function_query(... и только потом, когда запрос пройдет и вызовется указанный в mysql_function_query паблик, используйте switch(mysql_num_rows()) {...
|
Не мог бы подсказать как этой функцией пользоваться?
Re: Помогите с MySQL R7 -
TRPG - 23.08.2012
Quote:
Originally Posted by Optimus_Sprite
Не мог бы подсказать как этой функцией пользоваться? 
|
pawn Код:
При коннекте:
mysql_format(database,string,"SELECT * FROM `Accounts` WHERE Name = '%s'",PlayerName);
mysql_function_query(database,string,false,"ExistionCallback","ds",playerid,PlayerName);//Отправляем запрос
Далее
forward ExistionCallback(playerid,name[]);
public ExistionCallback(playerid,name[])//Паблик вызывается после обработки запроса.
{
mysql_store_result();
if(!IsPlayerConnected(playerid))//Защита от случаев когда результат приходит, а игрок уже покинул сервер.
{
mysql_free_result();
return 1;
}
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,PlayerName,sizeof PlayerName);
if(strcmp(name,PlayerName,true))//Защита от случаев когда результат приходит, а игрок уже покинул сервер и на его место зашел другой
{
mysql_free_result();
return 1;
}
Далее ваш код с mysql_num_rows...
switch(mysql_num_rows())
{
case 0: // регистрация при отсутствии строки в таблице
case 1: // авторизация если одна строка есть
}
mysql_free_result();//Не забывайте использовать
return 1;
}
Re: Помогите с MySQL R7 -
Optimus_Sprite - 23.08.2012
Quote:
Originally Posted by TRPG
pawn Код:
При коннекте:
mysql_format(database,string,"SELECT * FROM `Accounts` WHERE Name = '%s'",PlayerName); mysql_function_query(database,string,false,"ExistionCallback","ds",playerid,PlayerName);//Отправляем запрос
Далее
forward ExistionCallback(playerid,name[]); public ExistionCallback(playerid,name[])//Паблик вызывается после обработки запроса. { mysql_store_result(); if(!IsPlayerConnected(playerid))//Защита от случаев когда результат приходит, а игрок уже покинул сервер. { mysql_free_result(); return 1; } new PlayerName[MAX_PLAYER_NAME]; GetPlayerName(playerid,PlayerName,sizeof PlayerName); if(strcmp(name,PlayerName,true))//Защита от случаев когда результат приходит, а игрок уже покинул сервер и на его место зашел другой { mysql_free_result(); return 1; } Далее ваш код с mysql_num_rows... switch(mysql_num_rows()) { case 0: // регистрация при отсутствии строки в таблице case 1: // авторизация если одна строка есть } mysql_free_result();//Не забывайте использовать return 1; }
|
Ещё одна проблема:
Не создается строка (аккаунт).
pawn Код:
mysql_format(database, "", "INSERT INTO `Accounts` ( `Name`,`Password`,`Admin`,`Money`,`Kills`,`Warns` ) VALUES ( '%s', '%s', 0, 0, 0, 0 )", PlayerName, inputtext);
Re: Помогите с MySQL R7 -
Optimus_Sprite - 23.08.2012
Все проблемы решены.
Спасибо