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