C语言简单操作MYSQL数据库的增删查找

下面的代码只是简单的运用MYSQL命令

#include<stdio.h>
#include<mysql.h>   //所需头文件
#include<string.h>
#include<stdlib.h>

MYSQL *conn_prt;     //创造一个MYSQL句柄
MYSQL_RES *res;
MYSQL_ROW row;

/*一些操作的命令起始部分*/
char select_head[50] = "select * from ";
char desc_head[50] = "desc ";
char insert_head[200] = "insert into ";
char drop_msg_head[50] = "delete from ";
char change_base_head[50] = "use ";

/*初始化mysql句柄*/
void self_init()
{
	conn_prt = mysql_init(NULL);
}

/*连接mysql数据库*/
void self_connect()
{
	/*假设我的云服务器IP为118.89.20.60,密码为123456,进入的数据库名字为zje*/
	if(!mysql_real_connect(conn_prt,"118.89.20.60","root",
		"123456","zje",0,NULL,0))
	{
		printf("failed to connect:%s\n",mysql_error(conn_prt));
		exit(0) ;
	}
	printf("connect success!\n");

	/*如果本机测试的话,上面的语句可改为*/
	/*
		printf("本机测试\n");
		if(!mysql_real_connect(conn_prt,"localhost","root",
			"123456","zje",0,NULL,0))
		{
			printf("failed to connect:%s\n",mysql_error(conn_prt));
			exit(0) ;
		}
		printf("connect success!\n");
	*/
}

/*打印某个数据库中的某个表*/
void print_table()
{
	int t;
	char table_name[50];
	char query[50];
	bzero(query,50);
	bzero(table_name,50);

	strcpy(query,select_head);

	puts("please enter table name:");
	scanf("%s",table_name);

	strcat(query,table_name);
	t = mysql_real_query(conn_prt,query,strlen(query));
	if(t)
	{
		printf("failed to query:%s\n",mysql_error(conn_prt));
		return ;
	}
	printf("query success!\n");

	res = mysql_store_result(conn_prt);
	while(row = mysql_fetch_row(res))
	{
		for(t = 0;t<mysql_num_fields(res);t++)
		{
			printf("%s\t",row[t]);
		}
		printf("\n");
	}

	return ;

}

/*打印某个表的字段有哪些*/
void desc_table()
{
	int t;
	char table_name[50];
	char desc_query[50];
	bzero(table_name,50);
	bzero(desc_query,50);

	strcpy(desc_query,desc_head);

	puts("please enter the table name:");
	scanf("%s",table_name);

	strcat(desc_query,table_name);

	t = mysql_real_query(conn_prt,desc_query,strlen(desc_query));
	if(t)
	{
		printf("failed to query:%s\n",mysql_error(conn_prt));
		return ;
	}
	res = mysql_store_result(conn_prt);
	while(row = mysql_fetch_row(res))
	{
		for(t = 0;t<mysql_num_fields(res);t++)
		{
			printf("%s\t",row[t]);
		}
		printf("\n");
	}
	return ;
}

/*往某个表中插入数据*/
void insert_msg()
{
	int t;
	char insert_query[200];
	char table_name[50];
	char field[100];
	char left[5]="(";
	char right[5]=") ";
	char values[50]="values";
	char message[200]={0};

	bzero(field,100);
	bzero(table_name,50);
	bzero(message,200);

	strcpy(insert_query,insert_head);   //insert into

	puts("please enter table_name:");
	scanf("%s",table_name);

	puts("please enter the Field you want to write:(以逗号分隔)");
	scanf("%s",field);

	puts("please write the message to the field:(以逗号分隔)");
	scanf("%s",message);

	/*把几个变量字符串连接成一个完整的mysql命令*/
	strcat(insert_query,table_name);
	strcat(insert_query,left);
	strcat(insert_query,field);
	strcat(insert_query,right);
	strcat(insert_query,values);
	strcat(insert_query,left);
	strcat(insert_query,message);
	strcat(insert_query,right);
	printf("%s\n",insert_query);

	t = mysql_real_query(conn_prt,insert_query,strlen(insert_query));
	if(t)
	{
		printf("failed to query:%s\n",mysql_error(conn_prt));
		return ;
	}

	printf("OK\n");
}

/*删除某个表中的某个数据,以名字为基准*/
void drop_msg_table()
{
	int t;
	char drop_query[200]={0};
	char table_name[20]={0};
	char del_name[20]={0};

	strcpy(drop_query,drop_msg_head);

	puts("please enter the table:");
	scanf("%s",table_name);

	puts("please enter del name:");
	scanf("%s",del_name);

	strcat(drop_query,table_name);
	strcat(drop_query," where name =\"");
	strcat(drop_query,del_name);
	strcat(drop_query,"\"");
	printf("%s\n",drop_query);

	t = mysql_real_query(conn_prt,drop_query,strlen(drop_query));
	if(t)
	{
		printf("failed to query:%s\n",mysql_error(conn_prt));
		return ;
	}

	printf("OK\n");
	return ;
}

/*改变身处的数据库*/
void change_base()
{
	int t;
	char change_based_query[100]={0};
	char base_name[20]={0};
	strcpy(change_based_query,change_base_head);

	puts("please enter the base name you want to change:");
	scanf("%s",base_name);

	strcat(change_based_query,base_name);

	t = mysql_real_query(conn_prt,change_based_query,strlen(change_based_query));
	if(t)
	{
		printf("failed to query:%s\n",mysql_error(conn_prt));
		return ;
	}
	printf("OK\n");
	return ;
}

/*打印某个数据库中有哪些表*/
void show_all_tables()
{
	int t;
	char query[50] ="show tables";
	t = mysql_real_query(conn_prt,query,strlen(query));
	if(t)
	{
		printf("failed to query:%s\n",mysql_error(conn_prt));
		return ;
	}
	
	res = mysql_store_result(conn_prt);
	while(row = mysql_fetch_row(res))
	{
		for(t = 0;t<mysql_num_fields(res);t++)
		{
			printf("%s\t",row[t]);
		}
		printf("\n");
	}
	return ;
}

/*打印存在的所有数据库*/
void show_all_bases()
{
	int t;
	char query[50] ="show databases";
	t = mysql_real_query(conn_prt,query,strlen(query));
	if(t)
	{
		printf("failed to query:%s\n",mysql_error(conn_prt));
		return ;
	}
	
	res = mysql_store_result(conn_prt);
	while(row = mysql_fetch_row(res))
	{
		for(t = 0;t<mysql_num_fields(res);t++)
		{
			printf("%s\t",row[t]);
		}
		printf("\n");
	}
	return ;
}

char dir[200] ={"   \
\t1.打印表       \
\t2.查询某个表的格式 \
\t3.往某个表插入数据\n	\
\t4.删除某表的某一数据		\
\t5.选择另外一个数据库		\
\t\n6.显示所有表  \
\t 7.显示所有数据库	\
"};

int main()
{
	self_init();
	self_connect();
	printf("%s\n",dir);
	int type;
	while(1)
	{
		puts("please choice option:");
		scanf("%d",&type);
		switch(type)
		{
			case 1:print_table();break;
			case 2:desc_table();break;
			case 3:insert_msg();break;
			case 4:drop_msg_table();break;
			case 5:change_base();break;
			case 6:show_all_tables();break;
			case 7:show_all_bases();break;
		}
	}

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值