В format нет спецификатора %e. Используй %q или используй mysql_format
использовал mysql_format. При использовании спецификатора %e просто выключало сервер без ошибок в лог. Я сделал %s. Аккаунт сохранился, но появился такой артефакт:
(Вводил пароль: 123456, e-mail: [email protected].)
Я также вывел все эти переменные в printf. Они записываются нормально.Код:stock RegisterPlayer(playerid) { new query[170]; mysql_format(dbHandle,query, "INSERT INTO `accounts` (`nickname`, `email`, `password`, `regdata`, `regip`, `age`, `sex`, `race`) VALUES ('%s','%s','%s','%s','%s','%d','%d','%d')", pData[playerid][pNickname],pData[playerid][pEmail] ,pData[playerid][pPassword], pData[playerid][pRegData], pData[playerid][pRegIP],pData[playerid][pAge], pData[playerid][pGender],pData[playerid][pRace]); mysql_function_query(dbHandle, query, false, "", ""); }
Последний раз редактировалось nikvlad; 15.06.2016 в 10:42.
Судя по вики: http://wiki.sa-mp.com/wiki/MySQL/R33#mysql_format
Ты используешь функцию mysql_format неправильно. Нужно указать размер query.
Также выведи то, что сформировалось с помощью print:PHP код:
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `accounts` (`nickname`, `email`, `password`, `regdata`, `regip`, `age`, `sex`, `race`) VALUES ('%s','%s','%s','%s','%s','%d','%d','%d')", pData[playerid][pNickname],pData[playerid][pEmail] ,pData[playerid][pPassword], pData[playerid][pRegData], pData[playerid][pRegIP],pData[playerid][pAge], pData[playerid][pGender],pData[playerid][pRace]);
PHP код:
print(query);
Хм, ошибка: error 035: argument type mismatch (argument 3)
Я использую MySQL R7-2, в том же вики написано так: http://wiki.sa-mp.com/wiki/MySQL#mysql_format
Последний раз редактировалось ziggi; 15.06.2016 в 14:32.
Решил вот таким способом, но этот код похож на костыль, можно его как-нибудь оптимизировать?
- - - Добавлено - - -Код:new query[201], pass[16], email[32],ip[16],data[16], name[MAX_PLAYER_NAME]; GetPVarString(playerid,"email",email,32); GetPVarString(playerid,"pass",pass,16); GetPVarString(playerid,"name",name,MAX_PLAYER_NAME); format(data, sizeof(data), "%s", date("%dd.%mm.%yyyy", gettime())); GetPlayerIp(playerid, ip, sizeof(ip)); format(query, sizeof(query), "INSERT INTO `accounts` (`nickname`, `password`, `regdata`, `regip`, `email`, `age`, `sex`, `race`) VALUES ('%s','%s','%s','%s','%s','%d','%d','%d')", name, pass, data, ip, email,pData[playerid][pAge], pData[playerid][pGender],pData[playerid][pRace]); mysql_function_query(dbHandle, query, false, "", "");
Это мои первые опыты, я это для души делаю)
Покажи как ты пытаешься записать данные в pData[playerid][pNickname].
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)