PDA

Просмотр полной версии : [Вопрос] vopros mysq_function_query



DmitriyVasilev
19.07.2019, 11:38
prивет всем подскажите пожалуйста когда нужно ставить true а когда false в запросах MYSQL
mysql_function_query(DATABASE, QUERYSMALL, true,"","");

mysql_function_query(DATABASE, QUERYSMALL, false,"","");

DeimoS
25.07.2019, 21:11
Вообще:
true - когда запрос должен возвращать результат в виде кэша (SELECT-запросы. Ну или когда нужно получить значение AUTO_INCREMENT после INSERT-запроса).
false - когда запрос не должен возвращать ничего (INSERT/DELETE и т.п.).
Но вообще на деле mysql_function_query - это макрос и данный параметр никуда не передаётся, а является "синтаксическим сахаром", просто упрощающем чтение кода.

execution
26.07.2019, 11:12
1. Если проверяем игрока при подключении, забанен ли его ип или нет, мне же достаточно будет использовать mysql_tquery с обратным вызовом в паблик и затем проверять существует акк в бд и т.д.?
2. Нельзя искать игрока по нику в бд, но когда игрок коннектиться, мне известно лишь ник, как в этом случае поступать?

DeimoS
26.07.2019, 11:35
1. Если проверяем игрока при подключении, забанен ли его ип или нет, мне же достаточно будет использовать mysql_tquery с обратным вызовом в паблик и затем проверять существует акк в бд и т.д.?

Да.


2. Нельзя искать игрока по нику в бд

Можно, если сделать столбец с ником уникальным или снабдить запрос "LIMIT 1" (если столбец уникальный, то "LIMIT 1" прописывать не нужно), но это всё равно будет менее эффективно, чем работа через ID аккаунта (Если объяснять упрощённо, то каждая буква в нике - отдельное число. Должно быть понятно, что сверять только одно число, в случае с ID, будет гораздо быстрее, чем каждый раз сверять множество чисел, как в случае с ником).


но когда игрок коннектиться, мне известно лишь ник, как в этом случае поступать?

Проверять по нику. Ничего смертельного в работе с данными по нику нет. Особенно если правильно подготовить базу/запрос для этого (выше я описал как).
При входе ищешь по нику, а дальше уже получаешь ID аккаунта и все запросы посылаешь по нему.