Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с PAWNO

Kimpezar Профи (723), на голосовании 2 месяца назад
Почему не включается база данных?
#define MYSQL_HOST "local>host"
#define MYSQL_USER "root"
#define MYSQL_PASS ""
#define MYSQL_BASE "baseserverok"

main()
{
print("\n----------------------------------");
print("ServerOK STARTED");
print("----------------------------------\n");
}

//========================== Ïåðåìåííûå ======================================
//--------------------------- Ìóñîðêà ----------------------------------------
new MySQL:dbHandle;
//------------------------------------------------------------------------------
//==============================================================================
enum player
{
ID,
NAME[MAX_PLAYER_NAME],
PASSWORD[32],
}
new player_info[MAX_PLAYERS][player];

enum dialogs
{
DLG_NONE,
DLG_REG,
DLG_LOG,
}
public OnGameModeInit()
{
ConnectMySQL();
return 1;
}

stock ConnectMySQL()
{
dbHandle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_BASE);
switch(mysql_errno())
{
case 0: print("Ïîäêëþ÷åíèå ê MySQL óñïåøíî!");
default: print("MYSQL ÍÅ ÐÀÁÎÒÀÅÒ!");
}
mysql_log(ERROR | WARNING);
mysql_set_charset("cp1251_bin");
Голосование за лучший ответ
Kredwi Мудрец (11134) 3 месяца назад
Мб надо указать localhost а не local>host?
KimpezarПрофи (723) 3 месяца назад
Ответы майл ру не пропускали ссылку и я поэтому знак там поставил
Kredwi Мудрец (11134) Kimpezar, используй нейронку, к примеру вот в телеграмме @chat_gpt_unlim_bot
◻◻◻◻◻◻◻ Знаток (446) 3 месяца назад
В коде, который вы предоставили, есть несколько потенциальных проблем, которые могут мешать подключению к базе данных MySQL. Основные из них:

1. Ошибка в строке подключения:
```c
#define MYSQL_HOST "local>host"
```
Здесь должна быть строка "lосalhost", а не "local>host".

2. Порядок действий в функции `ConnectMySQL()`: проверка ошибки подключения должна происходить сразу после попытки подключения.

Исправленный код:

```pawn
#define MYSQL_HOST "lосalhost"
#define MYSQL_USER "root"
#define MYSQL_PASS ""
#define MYSQL_BASE "baseserverok"

main()
{
print("\n----------------------------------");
print("ServerOK STARTED");
print("----------------------------------\n");
}

//========================== Переменные ======================================
//--------------------------- Мусорка ----------------------------------------
new MySQL:dbHandle;
//------------------------------------------------------------------------------
enum player
{
ID,
NAME[MAX_PLAYER_NAME],
PASSWORD[32],
}
new player_info[MAX_PLAYERS][player];

enum dialogs
{
DLG_NONE,
DLG_REG,
DLG_LOG,
}
public OnGameModeInit()
{
ConnectMySQL();
return 1;
}

stock ConnectMySQL()
{
dbHandle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_BASE);

if (dbHandle == MYSQL_INVALID_HANDLE)
{
printf("Ошибка подключения к MySQL: %s", mysql_error(dbHandle));
return 0;
}

print("Подключение к MySQL успешно!");
mysql_log(ERROR | WARNING);
mysql_set_charset("cp1251_bin");
return 1;
}
```

В этом исправленном коде:
1. Исправлена ошибка в `MYSQL_HOST`.
2. Добавлена проверка валидности `dbHandle` сразу после попытки подключения и вывод ошибки с помощью `mysql_error`.
3. Удалена `switch` конструкция для проверки ошибок, так как `mysql_errno` лучше использовать в связке с `mysql_error` для получения более детальной информации об ошибках.
KredwiМудрец (11134) 3 месяца назад
Тыб хотяб markdown удалил
◻◻◻◻◻◻◻ Знаток (446) себя удали
KimpezarПрофи (723) 3 месяца назад
Господа а если я скопирую данный код и у себя вставлю с работает?
Kredwi Мудрец (11134) Kimpezar, ну её нейронка писала, скорей всего да..
Похожие вопросы