Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4

Тема: Cache mysql

  1. #1
    Аватар для Димарио
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.02.2017
    Сообщений
    18
    Репутация:
    0 ±

    Cache mysql

    В самп вики написано что при использовании cache функцй кэш быть должен только активный, что это значит?
    Типа должен быть активный запрос к мускулу или что?
    Если так, то как он определеят активный он или нет ведь нету никаких переменных которые привязываются к запросам?

    И еще такой вопрос, как можно сократить данный код?
    Можно ли как то 2 запроса в 1 строке уместить а то чето громоздко
    Код:
    			static const fmt_query[] = "INSERT INTO `accounts` (`name`, `pass`) VALUES ('%s', '%s')";
    			new query[sizeof(fmt_query) + (-2+MAX_PLAYER_NAME) + (-2 + 24)];
    			format(query, sizeof(query), fmt_query, PlayerInfo[playerid][pName], PlayerInfo[playerid][pPass]);
    			mysql_query(dbHandle, query);
    			SendClientMessage(playerid, COLOR_WHITE, "Регистрация персонажа успешно завершена!");
                            new queery[100];
    			format(queery, sizeof queery, "SELECT `id` FROM `accounts` WHERE `name` = '%s'", PlayerInfo[playerid][pName]);
    			mysql_query(dbHandle, queery);
    			cache_get_value_name_int(0, "id", PlayerInfo[playerid][pID]);
    			new str[100];
    			format(str, sizeof str, "Ваш ид: %d", PlayerInfo[playerid][pID]);
    			SendClientMessage(playerid, -1, str);
    Последний раз редактировалось Димарио; 27.09.2019 в 14:50.

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Если ты с кэшем работаешь на уровне "отправил запрос - обработал информацию", то для тебя тема активности кэшей не актуальна.
    Переключать активные кэши нужно тогда, когда ты, собственно, этот самый кэш сохраняешь через cache_save и уже где-то в другом месте тебе нужно опять обратиться к сохранённому кэшу. Вот тогда и нужно делать его активным при помощи функции cache_set_active. В ситуациях, когда ты просто обрабатываешь результат запроса, кэш и так будет активным.




    1. new query[47 + (MAX_PLAYER_NAME) + (24*2) + 1];
    2. mysql_format(dbHandle, query, sizeof(query), "INSERT INTO accounts SET player_name='%s',pass='%e'",
    3. PlayerInfo[playerid][pName], PlayerInfo[playerid][pPass]);
    4. mysql_query(dbHandle, query);
    5. PlayerInfo[playerid][pID] = cache_insert_id();
    6.  
    7. SendClientMessage(playerid, COLOR_WHITE, "Регистрация персонажа успешно завершена!");
    8. new str[100];
    9. format(str, sizeof str, "Ваш ид: %d", PlayerInfo[playerid][pID]);
    10. SendClientMessage(playerid, -1, str);
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. Пользователь сказал cпасибо:
    Димарио (27.09.2019)
  4. #3
    Аватар для Димарио
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.02.2017
    Сообщений
    18
    Репутация:
    0 ±
    Спс а кеш становится активным после отправки любого запроса?

  5. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Если запрос подразумевает возврат информации из БД - да.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •