C语言实现程序连接数据库并实现简单的嵌入式服务器

本文介绍如何使用C语言连接嵌入式MySQL数据库,包括获取或初始化MYSQL结构、建立数据库连接、执行SQL语句、获取及显示结果集、释放资源和关闭连接的详细步骤,并提供全部源代码及运行效果。
摘要由CSDN通过智能技术生成

我们可以直接访问数据库,当然我们也需要在程序中连接数据库。
接下来我将介绍嵌入式MySQL服务器库。
使用嵌入式 MySQL 服务器库, 能够在客户端应用程序中使用具备全部特性的 MySQL 服务器。 主要优点在于,增加了速度,并使得嵌入式应用程序的管理更简单。嵌入式服务器库是以 MySQL 的客户端/ 服务器版本为基础的, 采用 C/C++语言编写。 其结果是嵌入式服务器也是用 C/C++语言编写的。 在其他语言中, 嵌入式服务器不可用。
具体简单步骤:

1.获取或者初始化MYSQL结构

首先MYSQL是一个结构类型,该结构代表 1 个数据库连接的句柄。 几乎所有的 MySQL 函数均使用它。
函数介绍

MYSQL *mysql_init(MYSQL *mysql)
/*
	分配或初始化与 mysql_real_connect()相适应的 MYSQL 对象。 如果 mysql 是 NULL 指针,
	该函数将分配、 初始化、 并返回新对象。 否则, 将初始化对象, 并返回对象的地址。 如果
	mysql_init()分配了新的对象, 当调用 mysql_close()来关闭连接时。 将释放该对象。
	初始化的 MYSQL*句柄。 如果无足够内存以分配新的对象, 返回 NULL。
*/

我们来获得一个句柄

MYSQL *mysql =mysql_init(NULL);	//获得数据库连接的句柄,分配或初始化与 mysql_real_connect()相适应的 MYSQL 对象
if(mysql == null){
   
	printf("mysql_init error!\n");
	return -1;
}

2.尝试与数据库引擎建立连接

我们会用到一个函数
函数介绍

MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const
char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)
/*
描述:mysql_real_connect()尝试与运行在主机上的 MySQL 数据库引擎建立连接。 在你能够执行
需要有效 MySQL 连接句柄结构的任何其他 API 函数之前, mysql_real_connect()必须成功完成。
第 1 个参数应是已有 MYSQL 结构的地址。 调用 mysql_real_connect()之前, 必须调
用 mysql_init()来初始化 MYSQL 结构。 
“host”的值必须是主机名或 IP 地址。 如果“host”是 NULL 或字符串"localhost", 连接
将被视为与本地主机的连接。
“user”参数包含用户的 MySQL 登录 ID。 如果“user”是 NULL 或空字符串"", 用户将
被视为当前用户。 
“passwd”参数包含用户的密码。 如果“passwd”是 NULL, 仅会对该用户的(拥有 1
个空密码字段的) 用户表中的条目进行匹配检查。 
“db”是数据库名称。 如果 db 为 NULL, 连接会将默认的数据库设为该值。
如果“port”不是 0, 其值将用作 TCP/IP 连接的端口号。 
如果 unix_socket 不是 NULL, 该字符串描述了应使用的套接字或命名管道。 
client_flag 的值通常为 0, 
*/

我们来尝试连接

mysql = mysql_real_connect(mysql,"localhost(主机)","root(用户)","password(密码)","databases(数据库名称)",3306,NULL,0);
if(mysql == NULL){
   
	printf("mysql_real_connect error:%s\n",mysql_error(mysql));
	//mysql_error()这个函数返回上次调用的MYSQL函数的错误信息,是一串以null终结的字符串
	return -1;
}

3.执行SQL语句

连接上数据库后,我们就可以执行SQL语句了,这些语句可以是DDL,DQL,DML等等语句,由用户自己输入。
函数介绍

	mysql_query(MYSQL *mysql,const char *sql);
	/*
	执行由“Null 终结的字符串”查询指向的 SQL 查询。 正常情况下, 字符串必须包含 1 条 SQL
语句, 而且不应为语句添加终结分号(‘;’) 或“\g”。 如果允许多语句执行, 字符串可包含多条由分号隔开的语句。
	如果希望了解查询是否应返回结果集, 可使用 mysql_field_count()进行检查
	如果查询成功, 返回 0。 如果出现错误, 返回非 0 值。
	*/

接下来我们自己输入想要执行的SQL语句

char query[1024]={
   };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值