我们可以直接访问数据库,当然我们也需要在程序中连接数据库。
接下来我将介绍嵌入式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]={
};