开发者

mysql_real_query returns 1, mysql_error returns a NULL string

When I run a first query, mysql_real_query returns 1, from what I understand, this is normal, I have to call mysql_errno() and mysql_error() to get information about the error. But why does mysql_error() return a NULL string?

After running a second query or mysql_ping I receive a violation exception. Any clue to what's happening ?

Also, should I be using C++ connector in a C++ program or may the C connector (which is what I am using) work as well. Would I have to compile it under my compiler to get it to work?

Here is a part of the code I use, may this help someone pinpoint me the solution. I do not know what is wrong here.

char req[50];
static char *ser开发者_开发知识库verOptions_p[] = {
     "abc",
     "--datadir=C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/data/abc",
     "--language=C:/Program Files/MySQL/MySQL Server 5.5/share/english", 
     NULL
};
int numElements = sizeof (serverOptions_p) / sizeof(char *) - 1;
static char *serverGroups_p[] = { "mysql_server", NULL };
if (mysql_library_init(numElements, serverOptions_p, (char **) serverGroups_p)) {
    return;
}

d_connectionHandle_p = mysql_init(NULL);

if (d_connectionHandle_p) {
    my_bool mb = true;
    mysql_options(d_connectionHandle_p, MYSQL_OPT_RECONNECT, &mb);
    if (mysql_real_connect(d_connectionHandle_p, server_p, user_p, password_p, database_p, 0, NULL, 0)) {
        sprintf(req, "CREATE DATABASE %s", database_p);
        mysql_real_query(d_connectionHandle_p, requete, strlen(requete));
    }
}
else {
    return;
}

int e;
strcpy(req, "SELECT * FROM test");

if ((e = mysql_real_query(d_connectionHandle_p, req, strlen(req))) != 0) { // This is where it returns 1
    const char *err = mysql_error(d_connectionHandle_p); // Returns an empty string
    if (err)
    {
    }
}


According to the manual, a non-zero return value means an error occurred:

Return Values

Zero if the statement was successful. Nonzero if an error occurred. 
0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜