PDA

Просмотр полной версии : [Вопрос] Отличия format и mysql_format?



Redsan
22.06.2016, 22:54
Функция mysql_format отличается от функции format наличием спецификатора "%e" который экранирует введенные данные без использования функции mysql_escape_string. Для каких данных использовать данный спецификатор? И актуально ли это в последних версиях mysql плагина?

m1n1vv
22.06.2016, 23:15
Есть специальный спецификатор %e - строка, которую необходимо почистить от возможной SQL инъекции. Так же можно попросить MySQL перезагрузить таблицы пользовательских привилегий.

Prolific
22.06.2016, 23:51
%q решает ту же проблему, так что уже ничем не отличаются.

Daniel_Cortez
23.06.2016, 00:02
%q решает ту же проблему, так что уже ничем не отличаются.
%q в format и %e в mysql_format делались для разных СУБД. Пока что в их работе отличий нет, но не факт, что они будут работать одинаково и в будущем.

Prolific
23.06.2016, 00:20
%q в format и %e в mysql_format делались для разных СУБД. Пока что в их работе отличий нет, но не факт, что они будут работать одинаково и в будущем.

СУБД разные, принцип тот же.

Mist
23.06.2016, 10:42
%q в format и %e в mysql_format делались для разных СУБД. Пока что в их работе отличий нет, но не факт, что они будут работать одинаково и в будущем.

То есть если использовать mysql_format, то можно не писать mysql_real_escape?

Redsan
24.06.2016, 21:46
static const fmt_str[] = "UPDATE `accounts` SET `player_name` = '%s', `password` = '%s' WHERE `id` = '%d'";
new query[sizeof(fmt_str) + (-2+MAX_PLAYER_NAME-2+32-2+11)];
mysql_format(mysql_connect_id, query, sizeof(query), fmt_str, pInfo[playerid][pName], pInfo[playerid][pPassword], pInfo[playerid][pID]);
mysql_function_query(mysql_connect_id, query, false, "","");
Почему при использовании static const компилятор сообщает о неизвестном типе аргумента 4 в mysql_format?

VVWVV
24.06.2016, 22:14
static const fmt_str[] = "UPDATE `accounts` SET `player_name` = '%s', `password` = '%s' WHERE `id` = '%d'";
new query[sizeof(fmt_str) + (-2+MAX_PLAYER_NAME-2+64-2+32-2+11)];
mysql_format(mysql_connect_id, query, sizeof(query), fmt_str, pInfo[playerid][pName], pInfo[playerid][pPassword], pInfo[playerid][pID]);
mysql_function_query(mysql_connect_id, query, false, "","");
Почему при использовании static const компилятор сообщает о неизвестном типе аргумента 4 в mysql_format?

Используй просто static.