mysql_errno всегда возвращает 0 - PullRequest
0 голосов
/ 17 августа 2011

Я пытаюсь подключиться к серверу с неправильным пользователем или паролем, и, как и ожидалось, не удается, но mysql_errno всегда возвращает 0. Что-то не так с моей установкой mysql?.

РЕДАКТИРОВАТЬ: я используюпрограмма для подключения к сети переменного тока.

int main(int argc, char *argv[]) {
    MYSQL my_connection;
    mysql_init(&my_connection);
    if (mysql_real_connect(
            &my_connection,
            "localhost",
            "rick",
            "I do not know",
            "foo", 0, NULL, 0)) {
        printf("Connection success\n");
        mysql_close(&my_connection);
    } else {
        fprintf(stderr, "Connection failed\n");
        if (mysql_errno(&my_connection)) {
            fprintf(stderr, "Connection error %d: %s\n",
                    mysql_errno(&my_connection), mysql_error(&my_connection));
        }
    }
    return EXIT_SUCCESS;
}

В книге вывод должен содержать ошибку 1045:
В моем случае это 0, и ничего, кроме соединения не было напечатано.

1 Ответ

1 голос
/ 17 августа 2011

mysql_errno() сообщает только об ошибках из действующего соединения.

Номер ошибки исходит из фактической базы данных. Как он может получить их без подключения в первую очередь?

В примере API вы заметите, , что они не беспокоятся о номере ошибки при сбое соединения

MYSQL mysql;

mysql_init(&mysql);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
    fprintf(stderr, "Failed to connect to database: Error: %s\n",
          mysql_error(&mysql));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...