首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C程序mysql连接

C程序mysql连接
EN

Stack Overflow用户
提问于 2010-08-11 04:32:20
回答 3查看 25.6K关注 0票数 4

我正在编写一个简单的c程序,它必须连接到我的数据库,然后执行查询,然后关闭连接。

代码语言:javascript
复制
int main()
{
    MYSQL *conn;
    conn = mysql_init(NULL);

    if (conn == NULL) {
        printf("Error %u %s\n", mysql_errno(conn), mysql_error(conn));
        exit(1);
    }

    if (mysql_real_connect(conn, "localhost", "root", "root", NULL, 8889, NULL, 0)) {
        printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
        exit(1);
    }

    if (mysql_query(conn, "create database testdb")) {
        printf("Error %u: %s",mysql_errno(conn), mysql_error(conn));
        exit(1);
    }

    mysql_close(conn);
    return 0;
}

这段代码可以编译,但当我运行它时,它将在mysql_query()语句之后退出。

返回以下错误:

代码语言:javascript
复制
Error 2006: MySQL server has gone away

我用谷歌搜索答案,结果如下:

http://dev.mysql.com/doc/refman/5.0/en/gone-away.html

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-11 04:46:39

返回值

如果连接成功,则为MYSQL*连接句柄;如果连接失败,则为NULL。如果连接成功,则返回值与第一个参数的值相同。

http://dev.mysql.com/doc/refman/5.0/en/mysql-real-connect.html

您的连接未建立

票数 0
EN

Stack Overflow用户

发布于 2013-11-27 20:26:42

连接到MySQL数据库服务器的/*简单C程序*/

代码语言:javascript
复制
 #include <mysql.h>
 #include <stdio.h>
 main() {
     MYSQL *conn;
     MYSQL_RES *res;
     MYSQL_ROW row;
     char *server = "localhost";
     char *user = "root";
     char *password = "PASSWORD"; /* set me first */
     char *database = "mysql";
     conn = mysql_init(NULL);
     /* Connect to database */
     if (!mysql_real_connect(conn, server,
         user, password, database, 0, NULL, 0)) {
        fprintf(stderr, "%s\n", mysql_error(conn));
        exit(1);
    }

    /* send SQL query */
    if (mysql_query(conn, "show tables")) {
        fprintf(stderr, "%s\n", mysql_error(conn));
        exit(1);
    }
    res = mysql_use_result(conn);

    /* output table name */
    printf("MySQL Tables in mysql database:\n");
    while ((row = mysql_fetch_row(res)) != NULL)
        printf("%s \n", row[0]);

    /* close connection */
    mysql_free_result(res);
    mysql_close(conn);
}
票数 6
EN

Stack Overflow用户

发布于 2010-08-11 04:44:03

您的连接失败-您的测试应该是:

代码语言:javascript
复制
if (mysql_real_connect(...) == NULL) {
  printf("...");
  exit(1);
}

mysql_real_connect在失败时返回NULL,或者在成功时返回连接句柄。

--戴夫

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3453168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档