C/C++连接MySql数据库

1.配置Visual Studio

建立一个基本的win32控制台程序,之后
  • 配置头文件:在【项目】-> 【配置属性】->【C/C++】->【常规】->【附加包含目录】中配置MySql C API的头文件路径,
    比如: D:\Program Files\MySQL\Connector C 6.0.2\include;
  • 配置lib文件:在【项目】-> 【配置属性】->【链接器】->【常规】->【附加库目录】中,添加MySql中提供的lib文件路径
    比如:D:\Program Files\MySQL\Connector C 6.0.2\lib\debug
    配置lib输入:在【项目】-> 【配置属性】->【链接器】->【输入】->【附加依赖项】中,添加需要的lib文件,
    比如:libmysql.lib
  • 拷贝dll文件,将libmysql.dll文件配置到你的环境变量PATH中,或者直接拷贝到运行文件的路径下,保证程序在运行是可以找到

注意:如果你的mysql是64位版本,则应该清楚mysql提供的lib文件也是64位的,所以,应该将你的项目更改成x64的项目。可以在项目的配置管理器中进行更改,如果你使用的是Visual studio 2008,如果你在配置管理器,平台选项中,无法将项目更改成64位的,则有可能是因为你没有安装x64的编译器。(Visual Studio 2008默认不安装)

2.编写程序

#include <my_global.h>
#include <mysql.h>

int main(int argc, char ** argv)
{
	MYSQL *con;
	MYSQL_RES *res;
	MYSQL_ROW row;
	
	char dbuser[30] = "root";
	char dbpasswd[30] = "root";
	char dbip[30] = "127.0.0.1";
	char dbname[50] = "test";		//用于测试用的数据库名
	char *sql = NULL;
	int rt;
	int count = 0;
	int t;
	
	con = mysql_init((MYSQL*)NULL);
	
	if (con != NULL && mysql_real_connect(con, dbip, dbuser, dbpasswd, dbname, 3306/*TCP IP端口*/, NULL/*Unix Socket 连接类型*/, 0/*运行成ODBC数据库标志*/))
	{
		if (!mysql_select_db(con, dbname))
		{
			printf("Select successfully the database!\n");
			con->reconnect = 1;
			sql = "set names \'GBK\'";
			rt = mysql_real_query(con, sql, strlen(sql));
			if (rt)
			{
				printf("Error making query: %s !!!\n", mysql_error(con));
			}
			else
			{
				printf("query %s succeed!\n", sql);
			}
		}
	}
	else
	{
		printf("connect unable!\n");
	}

	printf("-----------------------\n");		//进行select操作
	sql = "select * from student";				//建立了一个用于测试的表,表名为student
	rt = mysql_real_query(con, sql, strlen(sql));	//如果成功,返回0,否则,返回非0值
	if (!rt)
	{
		res = mysql_store_result(con);
		while (row = mysql_fetch_row(res))
		{
			for (t = 0; t<mysql_num_fields(res); ++t)
			{
				printf("%s ", row[t]);
			}
			printf("\n");
		}
		mysql_free_result(res);
	}
	else
	{
		printf("Query Failed!\n");
	}

	printf("-----------------------\n");	//进行插入操作
	sql = "insert student(sid,sname,ssex,sdept) values(\'4\',\'王五\',\'女\',\'材料\')";
	rt = mysql_real_query(con, sql, strlen(sql));
	if (rt)
	{
		printf("Insert Failed!\n");
	}

	printf("-----------------------\n");	//进行更新操作
	sql = "update student set sname=\'赵六\' where sid=\'4\'";
	rt = mysql_real_query(con, sql, strlen(sql));
	if (rt)
	{
		printf("Update Failed!\n");
	}

	printf("-----------------------\n");	//进行删除操作
	sql = "delete from student where sid=\'5\'";
	rt = mysql_real_query(con, sql, strlen(sql));
	if (rt)
	{
		printf("Delete Failed!\n");
	}

	mysql_close(con);	//关闭链接

	return 0;
}

3.运行效果


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值