C程序访问mysql数据库

2 篇文章 0 订阅

MySQL Connector/C

一、Connector/C 简介

 1.Connector/C (libmysqlclient) is a client library for C development


二、Connector/C 下载

 1.官方下载页面:https://dev.mysql.com/downloads/connector/c/ 。
 2.选择相对应的Connector/C版本(此处以mysql-connector-c-6.1.11-win32.zip为例


三、Connector/C 使用

 1.创建vc项目,项目文件夹目录如下


 2.解压下载的zip文件,拷贝include及lib文件夹到vc项目3rd/mysql_connector_x86中。
 3.项目属性中修改工作目录为 ../bin (项目工程的bin文件夹)


 3.项目属性中添加include及lib链接库路径。




程序代码

//main.c

 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <WinSock2.h>
#include "mysql.h"

#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib,"libmysql.lib")

int main(int argc, char** argv)
{
	WSADATA wsa;
	WSAStartup(MAKEWORD(2,2),&wsa);

	int ret;

	//创建mysql的连接 
	MYSQL* pConn = mysql_init(NULL);
	
	//使用创建的连接对象 连接对应的数据库
	mysql_real_connect(pConn, "127.0.0.1", "root", "331700", "class_database", 3306, NULL, 0);

	//数据库是utf8编码,vc里是gbk
	//mysql_query为执行sql命令
	mysql_query(pConn, "set names gbk"); //gbk字符编码;

	//插入
	ret = mysql_query(pConn, "INSERT INTO `class_table` (name,sex,age) VALUE (\"songchao\",1,30);");
	//获得错误信息
	if (ret != 0)
	{
		printf("error:%s/n", mysql_error(pConn));
	}

	//修改
	ret = mysql_query(pConn, "UPDATE class_table SET age=29 WHERE name=\"songchao\"");
	//获得错误信息
	if (ret != 0)
	{
		printf("error:%s/n", mysql_error(pConn));
	}

	//删除数据
	ret = mysql_query(pConn, "DELETE FROM class_table where id=2");
	//获得错误信息
	if (ret != 0)
	{
		printf("error:%s/n", mysql_error(pConn));
	}

	//查询
	ret = mysql_query(pConn, "SELECT * FROM class_table");
	//获得错误信息
	if (ret != 0)
	{
		printf("error:%s/n", mysql_error(pConn));
	}
	else
	{
		MYSQL_RES* result = mysql_store_result(pConn);
		MYSQL_ROW row;

		//获得列总数
		unsigned int num_field = mysql_num_fields(result);
		//获得列数据结构数组
		MYSQL_FIELD *field = mysql_fetch_fields(result);
		//打印每一列的域名
		for (unsigned int i = 0 ; i < num_field; i++)
		{
			printf("field_name:%s\n", field[i].name);
		}

		//获得行数据
		while (row = mysql_fetch_row(result))
		{
			for (unsigned int j = 0; j < num_field; j++)
			{
				printf("%s", row[j]);
				if (j == num_field - 1)
				{
					break;
				}
				printf(",");
			}	
			printf("\n");
		}
	}

	//关闭mysql连接
	mysql_close(pConn);

	WSACleanup();
	system("pause");
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值