C++使用Mysql API连接数据库,头文件需要在Mysql的安装目录中的include文件夹下(建议全部放到项目目录,或者设置库路径,如果不愿意这么做,也可以将其中需要用到的头文件找出来),另外需要将lib下的文件复制到项目目录

主要头文件如下:

mysql/psi/psi_memory.h

mysql_version.h

mysql_com.h

mysql_time.h

my_list.h

mysql/client_plugin.h

my_command.h

binary_log_types.h

typelib.h

代码介绍如下:

#include<iostream>

#include"mysql.h"

#include<WinSock.h>

#pragma comment(lib,"libmysql.lib")

using namespace std;

int main(int argc, char* argv[])

{

 mysql_library_init(NULL, 0, 0);

 MYSQL mysql;

 mysql_init(&mysql);

 if (0 == mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gb2312"))//设置字符集

 {

  cout << "设置字符集成功\n\n" << endl;

 }

 if (!mysql_real_connect(&mysql, "数据库地址", "用户名", "密码", "数据库名称", 0, NULL, CLIENT_MULTI_STATEMENTS))//连接数据库

 {

  cout << "不能连接到数据库" << endl;

 }

 else

 {

  cout << "已连接到数据库\n\n";

 }

 mysql_query(&mysql, "select * from messagetbl"); //执行SQL语句

 MYSQL_RES *result = mysql_store_result(&mysql); //获取资源

 int rowcount = mysql_num_rows(result); //获取记录数

 unsigned int fieldcount = mysql_num_fields(result); //获取字段数

                

 MYSQL_FIELD *field = NULL;  //字段

 MYSQL_ROW row = NULL; //记录

//遍历所有记录

 while (row = mysql_fetch_row(result))

 {

//遍历所有字段

  for (unsigned int i = 0; i < fieldcount; i++)

  {

   field = mysql_fetch_field_direct(result, i);

   cout << field->name << ":" << row[i] << "\n";

  }

 }

//释放资源

 mysql_free_result(result);

 mysql_close(&mysql);

 mysql_server_end();

 mysql_library_end();

 system("pause");

}
 

文章信息

创建时间
2023-12-11
作者
郭铭心
是否所有人可见
所有人可见
最后修改日期
2023-12-11
点击数
297
标签