济宁网站建设那家好,网址大全最新版,企业彩页设计模板,wordpress 为分类定模板一.引入库
我们已经分享了很多通过命令行方式去操作数据库#xff0c;那么数据库该怎么通过语言去访问呢#xff1f;
这里分享怎么通过C/C来连接数据库。
首先需要到MySQL官网#xff0c;下载专门用于C/C连接数据库的库#xff0c;但是一般不需要再去官网下载。
因为在…一.引入库
我们已经分享了很多通过命令行方式去操作数据库那么数据库该怎么通过语言去访问呢
这里分享怎么通过C/C来连接数据库。
首先需要到MySQL官网下载专门用于C/C连接数据库的库但是一般不需要再去官网下载。
因为在初始MySQL安装时除了安装MySQL服务之外其对应的库都会被一并安装。
我们可以在 /usr/include/mysql 路径下查看已经引入的MySQL各种头文件至于库的位置不同的Linux系统版本可能库的位置会不同因此建议通过find指令去全局查询库的位置 find / -name libmysqlclient.so; 可以通过一个简易代码来查看库是否引入成功。
#include iostream
#include mysql/mysql.hint main()
{std::cout version: mysql_get_client_info() std::endl;return 0;
} 该代码的作用是显示当前MySQL的版本在编译时需要通过路径来连接对应的库 g -o test test.cc -L路径 -lmysqlclient; 二.MySQL接口
初始化MySQL MYSQL *mysql_init(MYSQL *mysql); 用于创建一个MySQL对象以供后续连接使用创建失败对象为nullptr。 连接MySQL 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 clientflag); 其中参数分别为MySQL对象、连接的主机、用户名、密码、数据库、端口号、套接字和标志位。
通过该函数建立起MySQL与语言的连接连接失败返回nullptr。 设置字符集 mysql_set_character_set(myfd, utf8); MySQL与语言建立后默认字符集是latin1不能识别中文因此需要设置字符集为utf8。 下发MySQL命令 int mysql_query(MYSQL *mysql, const char *q); 通过该函数向MySQL发送命令命令语句通过q参数传递。
指令执行成功返回0执行失败返回-1。
然而当我们通过语言方式执行MySQL的查询指令 select 时得到的数据并不能直接显示但是如果查询语句执行成功我们就可以通过如下函数获取到查询结果 MYSQL_RES *mysql_store_result(MYSQL *mysql); 该函数会返回 MYSQL_RES 类型的变量可以理解为一个类型为存放字符串的二维数组如果获取失败则返回nullptr变量该类型变量会通过malloc开辟空间因此使用之后必须进行空间释放 void mysql_free_result(MYSQL_RES* result); 获取结果的行数 my_ulonglong mysql_num_rows(MYSQL_RES *res); 获取结果的列数 unsigned int mysql_num_fields(MYSQL_RES *res); 获取列的各种属性 MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *res); 在 MYSQL_FIELD 结构体类型中包含列的各种属性可通过该结构体得到列的名称。
获取结果内容 MYSQL_ROW mysql_fetch_row(MYSQL_RES *result); 该函数可以获取到结果集中单行的数据并且调用之后会自动指向下一行。
通过上述函数就可以使用循环方法来打印出 select 的结果。 关闭MySQL void mysql_close(MYSQL *sock);