MYSQL数据库(二)——简单应用

#include <stdio.h>
#include "mysql.h"
#include <stdlib.h>

MYSQL *init()
{
	MYSQL *mysql, *con;

	mysql = mysql_init(NULL);      //初始化mysql对象
	if (NULL == mysql)
	{
		printf("mysql_init : %s\n", mysql_error(mysql));
		return NULL;
	}

	con = mysql_real_connect(mysql, "localhost", "root", "root", "mydatabase", 0, NULL, 0);
	if (NULL == con)
	{
		printf("mysql_real_connect : %s\n", mysql_error(mysql));
		return NULL;
	}

	return mysql;

}

int get_result(MYSQL *mysql)
{
	char sql[64] = {0};
	int ret, i, fields;
	MYSQL_RES *res;
	MYSQL_FIELD *f;          //保存列结果(结构体)
	MYSQL_ROW row;           //保存行结果(数组)

	sprintf(sql, "select * from stu;");

	ret = mysql_query(mysql, "set names gbk");
	if (ret != 0)
	{
		printf("mysql_query : %s\n", mysql_error(mysql));
		return -3;
	}

	ret = mysql_query(mysql, sql);              //查询结果
	if (ret != 0)
	{
		printf("mysql_query : %s\n", mysql_error(mysql));
		return -1;
	}

	res = mysql_store_result(mysql);          //保存查询结果
	if (NULL == res)
	{
		printf("mysql_store_result : %s\n", mysql_error(mysql));
		return -2;
	}

	fields = mysql_num_fields(res);    //获取列数

	while (f = mysql_fetch_field(res))     //获取表头
	{
		printf("%-12s", f->name);
	}
	printf("\n");

	while (row = mysql_fetch_row(res))
	{
		for (i = 0; i < fields; i++)
		{
			printf("%-12s", row[i]);
		}
		printf("\n");
	}

	return 0;
}

int main()
{
	MYSQL *mysql;
	int ret;

	mysql = init();
	if (NULL == mysql)
	{
		exit(1);
	}
	printf("连接服务器成功!\n");

	ret = get_result(mysql);             //自定义函数
	if (ret != 0)
	{
		exit(2);
	}

	getchar();

	return 0;
}

猜你喜欢

转载自blog.csdn.net/cainiao000001/article/details/80794189