连接数据库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编译时同样需要指定链接库文件的位置。