开发者

mysql_errno always returns 0

I am trying to connect to the开发者_如何学JAVA server with a wrong user or password and as expected it fails but the mysql_errno always returns 0. is there something wrong with my mysql installation?.

EDIT: I am using a c program to connect.

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;
}

IN the book the output is supposed to say error 1045:

In my case it is 0 and nothing but connection failed is printed.


mysql_errno() only reports errors from a valid connection.

The error number comes from the actual database. How can it retrieve these without a connection in the first place?

You'll notice in the API example, they don't bother with the error number for a failed connection

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));
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜