3.操作数据库的代码
/* ============================================================================ Name : mysql.c Author : Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ============================================================================ */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include </usr/include/mysql/mysql.h> /** * 测试链接数据库 */ void ConnectionTest(); /** * 插入数据 */ void InsertData(); /** * 删除数据 */ void DeleteData(); /** * 查询数据 */ void QueryData(); int main(void) { //ConnectionTest(); //InsertData(); //DeleteData(); QueryData(); return 0; } /** * 测试链接数据库 */ void ConnectionTest(){ MYSQL mysql; //int t,r; mysql_init(&mysql); /** * &mysql:数据库的;连接句柄引用 * "localhost": 数据库的位置,"localhost"表示本机,也可以用ip地址远程链接 * "root":管理员名陈 * "123":密码 * "test":数据库名称 */ if(mysql_real_connect(&mysql, "localhost","root","123","test",0,NULL,0)){ printf("Connted Mysql successful!\n"); }else{ printf("Connted Mysql failed!\n"); } mysql_close(&mysql); } /** * 插入数据 */ void InsertData(){ MYSQL mysql;//mysql数据库链接句柄 MYSQL_RES *res;//该结构代表返回行的查询结果 MYSQL_ROW row;//这个是一行数据的类型安全 char *query; int flag; mysql_init(&mysql); if(mysql_real_connect(&mysql, "localhost","root","123","test",0,NULL,0)){ printf("Connted Mysql successful!\n"); }else{ printf("Connted Mysql failed!\n"); } query = "insert into student(id,name) values(5,5)"; /** * flage 为插入的标记变量,插入成功返回0 */ flag = mysql_real_query(&mysql,query,(unsigned int)strlen(query)); if(flag == 0){ printf("Insert data success !\n"); }else{ printf("Inser data failure !\n"); } mysql_close(&mysql); } /** * 删除数据 */ void DeleteData(){ MYSQL mysql; MYSQL_RES *res; MYSQL_ROW row; char* query; int flag; mysql_init(&mysql); if(mysql_real_connect(&mysql,"localhost","root","123","test",0,NULL,0)){ printf("Connted Mysql successful!\n"); }else{ printf("Connted Mysql failed!\n"); } query = "delete from student where id=1"; /** * flage 为删除的标记变量,删除成功返回0 */ flag = mysql_real_query(&mysql, query, (unsigned int)strlen(query)); if(flag == 0){ printf("Delete data success !\n"); }else{ printf("Delete data failure !\n"); } mysql_close(&mysql); } /** * 查询数据 */ void QueryData(){ MYSQL mysql; MYSQL_RES *res; MYSQL_ROW row; char* query; int flag,i; mysql_init(&mysql); if(mysql_real_connect(&mysql,"localhost","root","123","test",0,NULL,0)){ printf("Connted Mysql successful!\n"); }else{ printf("Connted Mysql failed!\n"); } query = "select * from student"; /** * flage 为查询的标记变量,查询成功返回0 */ flag = mysql_real_query(&mysql, query, (unsigned int)strlen(query)); if(flag == 0){ printf("query data success [%s]!\n",query); }else{ printf("query data failure !\n"); } /*mysql_store_result讲全部的查询结果读取到客户端*/ res = mysql_store_result(&mysql); /*mysql_fetch_row检索结果集的下一行*/ while(row = mysql_fetch_row(res)){ /*mysql_num_fields返回结果集中的字段数目*/ for(i=0;i<mysql_num_fields(res);i++){ printf("%s\t",row[i]); } printf("\n"); } mysql_close(&mysql); }