在实际的业务环境中我们不会直接使用命令行来访问Mysql服务,而是在程序中使用代码去访问,下面介绍的就是如何使用代码操作数据库。
安装Mysql库
mysql官方给我们提供了用以操作mysql数据库的动静态库以及头文件,我们只需要将其下载下来并安装到对应目录即可,本质上就是能让系统找到头文件和相关动态库:https://blog.csdn.net/2302_80221042/article/details/156562410?fromshare=blogdetail&sharetype=blogdetail&sharerId=156562410&sharerefer=PC&sharesource=2302_80221042&sharefrom=from_link
https://blog.csdn.net/2302_80221042/article/details/156562410?fromshare=blogdetail&sharetype=blogdetail&sharerId=156562410&sharerefer=PC&sharesource=2302_80221042&sharefrom=from_link
使用Mysql库
Mysql的相关接口在Mysql官网上都有涵盖
cpp
//初始化句柄
MYSQL* mysql = mysql_init(nullptr);
if (mysql) { cout << "初始化mysql句柄成功" << endl; }
//链接数据库
mysql = mysql_real_connect(mysql, host, user, passwd, db, port, nullptr, 0);
if (mysql) { cout << "连接数据库成功" << endl; }
//指明客户端(句柄)与服务器通信的字符集,也告诉了mysql要把查询结果转成gbk再发给客户端
mysql_set_character_set(mysql,"gbk");
//执行语句
const char* sql1 = "insert into ntb values (8,'哈哈',0,0,0)";
int ret1 = mysql_query(mysql,sql1);
if (!ret1)cout << "插入成功" << endl;
const char* sql2 = "select * from ntb";
int ret2 = mysql_query(mysql, sql2);
if (!ret2)cout << "查询成功" << endl;
//获取最近一次查询的结果
MYSQL_RES* result = mysql_store_result(mysql);
//获取结果的行数和列数
my_ulonglong row = mysql_num_rows(result);
my_ulonglong col = mysql_num_fields(result);
//获取所有字段的信息,这里我们打印每一列的列名
MYSQL_FIELD* field = mysql_fetch_fields(result);
for (int k = 0; k < col; k++)
{
cout << field[k].name << " ";
}
cout << endl;
for(int i =0;i<row;i++)
{
//获取一行的内容,会自动递增,下一次调用就是获取下一行内容
MYSQL_ROW line = mysql_fetch_row(result);
//获取该行的所有字段
for(int j = 0;j<col;j++)
{
cout << line[j]<< " ";
}
cout << endl;
}
//销毁结果集
mysql_free_result(result);
//关闭mysql连接
mysql_close(mysql);


注:Mysql中存储表用的编码和通信所用的编码可以不一样。