C连接MySql

连接数据库connect.c

#include <stdio.h>
#include <mysql/mysql.h>

int main()
{
    //MYSQL句柄
    MYSQL mysql;
    /*用mysql_init初始化MYSQL连接句柄*/
    mysql_init(&mysql);
    /*使用mysql_real_connect连接服务器*/
    if(!mysql_real_connect(&mysql, "localhost", "root", "1234", "mydb", 0, NULL, 0)) {
        printf("Error:%s
",mysql_error(&mysql));
    }else {
        printf("Connected Mysql successful!
");
    }
    /*关闭连接*/
    mysql_close(&mysql);
    return 0;
}

利用gcc编译时需要指定链接库位置

cc -o connect connect.c -L/usr/lib64/mysql -lmysqlclient

数据库查询query.c

#include <stdio.h>
#include <string.h>
#include <mysql/mysql.h>


int main()
{
    MYSQL mysql;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char *query;
    int flag, t;
    mysql_init(&mysql);
    if(!mysql_real_connect(&mysql, "localhost", "root", "1234", "mydb", 0, NULL, 0)) {
        printf("Failed to connect to Mysql!:%s
",mysql_error(&mysql));
        return 0;
    }else {
        printf("Connected to Mysql successfully!
");
    }
    query = "select * from student";
    /*查询,成功则返回0*/
    flag = mysql_real_query(&mysql, query, (unsigned int)strlen(query));
    if(flag) {
        printf("Query failed!
");
        return 0;
    }else {
        printf("[%s] made...
", query);
    }

    /*mysql_store_result将全部的查询结果读取到客户端*/
    res = mysql_store_result(&mysql);
    /*mysql_fetch_row检索结果集的下一行*/
    while(row = mysql_fetch_row(res)) {
        /*mysql_num_fields返回结果集中的字段数目*/
        for(t=0; t<mysql_num_fields(res); t++)
        {
            printf("%s	", row[t]);
        }
        printf("
");
    }
    mysql_close(&mysql);
    return 0;
}

使用gcc编译时同样需要指定链接库文件的位置。

原文地址:https://www.cnblogs.com/runnyu/p/4959966.html