Здравствуйте.
Вживил в мод вот эту регистрация/авторизацию, и возник вопрос. Как добавить проверку, подключена ли БД (успешно или не успешно)?
Здравствуйте.
Вживил в мод вот эту регистрация/авторизацию, и возник вопрос. Как добавить проверку, подключена ли БД (успешно или не успешно)?
PHP код:
public OnGameModeInit()
{
SetGameModeText(MOD_VERSION);
mysql_connect_ID = mysql_connect(MYSQL_CONNECT_INFO);
DisableInteriorEnterExits();
EnableStuntBonusForAll(0);
LimitPlayerMarkerRadius(100.0);
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
Как то так:
PHP код:
public OnGameModeInit()
{
SetGameModeText(MOD_VERSION);
mysql_connect_ID = mysql_connect(MYSQL_CONNECT_INFO);
// Вроде бы русский язык консолька не поддерживает, хз не тестил
static const successful_connection[] = !"Успешно подключено к базе данных!";
static const fail_connection[] = !"Ошибка подключение к базе данных!";
printf("%s", mysql_errno() == 0 ? (successful_connection) : (fail_connection));
DisableInteriorEnterExits();
EnableStuntBonusForAll(0);
LimitPlayerMarkerRadius(100.0);
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
P.S: Компилировать - компилировал, не тестил.
UPD: printf - судя по всему не принимает запакованные строки.
Последний раз редактировалось $continue$; 04.08.2015 в 17:10.
Есть еще проще вариант
PHP код:
if(mysql_errno())
print("! Связь с базой данных не установлена\n* Проверьте введенные вами данные\n\n");
else
print("! Связь с базой данных установлена\n\n");
1) В твоем случий если автор темы захочет изменить сообщение - ему придется менять в print. В моем случий - просто сменить в переменной. Мобильность программы - залог успеха.
2) Если уж использовать ветвление if/else, то тут можно вернуть значение и закрыть мод. То есть - закрываем - и сразу понятно, что то пошло не так. В тернарном операторе такое не реализовать.
Я думал так лучше будет:
PHP код:
static const
success_info[2][] =
{
!"Ошибка подключения к базе данных!",
!"Успешно подключено к базе данных!"
};
print(success_info[!!mysql_errno()]);
$continue$ (04.08.2015)
$continue$, вставил ваш вариант, в консоли получается вот такая билибирда:
Нельзя передавать упакованные строки в print, printf и format. Куй сделал так, чтобы строки перебирались посимвольно, но забыл учесть строки в упакованном виде. Следует заметить, что в остальных функциях такой проблемы не наблюдается, т.к. там обычно используется функция amx_GetString, которая сама конвертирует упакованные строки в неупакованные.
You're doing it wrong.
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)