C 连接MySQL数据库 CodeBlocks

C 连接MySQL数据库 CodeBlocks

1、下载驱动mysql-connector-c-6.1.11-win32.zip。
https://downloads.mysql.com/archives/c-c/

2、CodeBlocks配置。
a、指定libmysql.lib路径。

b、将libmysql.dll复制到Debug目录下。

c、指定mysql.h所在目录。

3、测试。

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stddef.h>
#include <time.h>
#include <winsock2.h>
#include <mysql.h>

int main() {

    // mysql连接
    MYSQL *conn;
    // mysql结果集
    MYSQL_RES *mysql_res;
    // mysql行操作符
    MYSQL_ROW mysql_row;

    char sql[200];
    int i;

    // 初始化
    conn = mysql_init(NULL);
    if (!conn) {
        return EXIT_FAILURE;
    }

    // 连接
    conn = mysql_real_connect(conn, "127.0.0.1", "root", "root", "test", 0, NULL, 0);
    if (!conn) {
        return EXIT_FAILURE;
    }

    // 设置字符集
    mysql_set_character_set(conn, "utf8");

    // sprintf()函数用于将格式化的数据写入字符串
    sprintf(sql, "%s", "select * from app_users");

    // 执行查询
    mysql_query(conn, sql);

    //mysql_store_result是把查询结果一次性取到客户端的离线数据集,当结果比较大时耗内存。
    //mysql_use_result是查询结果放在服务器上,客户端通过指针逐行读取,节省客户端内存。
    mysql_res = mysql_use_result(conn);

    while (mysql_row = mysql_fetch_row(mysql_res)) {
        printf("%s %s\n", mysql_row[1], mysql_row[2]);
        /*
        for (i = 0; i < mysql_num_fields(mysql_res); i++) {
            printf("%s,", mysql_row[i]);
        }
        printf("\n");
        */
    }

    // 释放
    mysql_free_result(mysql_res);

    // 结束
    mysql_close(conn);
}

 

发表回复

您的电子邮箱地址不会被公开。