быстродействие, эффективность или одно и то же.
Всех категорически приветствую Вас, дорогие форумчане pro-pawn.
Сабж: как будет эффективней проверять число строк и столбцов с заданным значением?
Возможно не так изложил свою мысль, но приведу пример.
Пример
> Регистрируется игрок
> Диалог с вводом E-MAIL
> Игрок вводит то "мыло", которое уже зарегистрировано
> Выходит ошибка о том, что мыло уже зарегистрировано
У меня есть два варианта:
1. с использованием коллбэка.
PHP код:
CMD:check(playerid, params[])
{
if(sscanf(params, "s[24]", params[0])) return SendClientMessage(playerid, -1, "check nick");
static const
frm_string[] = "SELECT * FROM `users` WHERE `Name` = '%s'";
new query_string[sizeof(frm_string)-2+MAX_PLAYER_NAME];
format(query_string, sizeof(query_string), frm_string,params[0]);
mysql_function_query(mysql_connect_ID, query_string, true, "FindPlayer", "ds", playerid, params[0]);
return true;
}
forward FindPlayer(playerid);
public FindPlayer(playerid)
{
new rows, fields;
cache_get_data(rows, fields);
if(rows)
{
SendClientMessage(playerid, -1, "Аккаунт найден.");
}
else
{
SendClientMessage(playerid, -1, "Аккаунт НЕ найден.");
}
}
}
2. Без использования коллбэка.
PHP код:
CMD:check_two(playerid, params[])
{
if(sscanf(params, "s[24]", params[0])) return SendClientMessage(playerid, -1, "check nick");
static const
frm_string[] = "SELECT * FROM `users` WHERE `Name` = '%s'";
new query_string[sizeof(frm_string)-2+MAX_PLAYER_NAME];
format(query_string, sizeof(query_string),frm_string, params[0]);
new Cache: check = mysql_query(mysql_connect_ID, query_string, true);
if(cache_num_rows()==0)
{
cache_delete(check);
SendClientMessage(playerid, -1, "Аккаунт найден.");
}
else
{
SendClientMessage(playerid, -1, "Аккаунт НЕ найден.");
}
return true;
}
Второй вариант я нашел в модах примерно 13 года, там естественно была старая версия mysql.
Жду Вашего мнения, что лучше(эффективней).