c++中用mysql
时间: 2025-04-16 22:43:06 浏览: 21
### 如何在 C++ 中连接和操作 MySQL 数据库
#### 准备工作
为了使 C++ 能够与 MySQL 数据库交互,需先完成一些准备工作。这包括安装 MySQL 数据库以及设置开发环境以便能够编译并执行相关程序。
- 安装 MySQL 数据库:可以在本地计算机上下载并安装 MySQL 或者使用云服务提供商提供的在线数据库实例[^1]。
- 设置开发环境:对于 Ubuntu 系统下的 Eclipse IDE 来说,当遇到 `mysql_init()` 未定义错误时,解决办法是在项目属性中加入 libmysqlclient 库作为静态链接库的一部分[^2]。
#### 编写代码实现连接功能
通过调用 `mysql_real_connect` 函数来建立应用程序同 MySQL Server 的通信链路。此函数接收多个参数用于指定服务器地址、登录凭证以及其他选项,并返回一个指向 MYSQL 结构体的指针表示此次会话的状态;如果发生异常则该指针为空(NULL)[^3]。
```cpp
#include <iostream>
#include <mysql/mysql.h>
int main(){
MYSQL* conn;
MYSQL_RES* res;
MYSQL_ROW row;
// 初始化客户端库
mysql_library_init(0, NULL, NULL);
// 创建一个新的连接对象
conn = mysql_init(NULL);
if (conn == NULL){
std::cerr << "Error: could not initialize connection object\n";
return EXIT_FAILURE;
}
// 尝试连接至远程主机上的特定数据库
if(mysql_real_connect(conn,"localhost","root","", "test", 0, NULL, 0)==NULL){
std::cerr << "Connection failed ("<<mysql_errno(conn)<<"): "<<mysql_error(conn)<<"\n";
mysql_close(conn);
return EXIT_FAILURE;
}else{
std::cout<<"Connected successfully!\n";
}
}
```
上述示例展示了如何初始化 MySQL 连接对象并通过给定的信息尝试打开到目标数据库的服务端口。注意这里假设用户名为 root 并且没有密码保护,实际应用中应替换为自己真实的账户信息。
#### 执行查询语句
一旦建立了有效的连接之后就可以发送 SQL 查询请求了。可以利用 `mysql_query` 方法向已有的表结构内插入新记录或是检索现有条目等内容。
```cpp
// 发送一条简单的 SELECT 命令获取所有用户列表
if(mysql_query(conn,"SELECT User FROM user_table")){
std::cerr << "Query error ("<<mysql_errno(conn)<<") :"<<mysql_error(conn)<<"\n";
}else{
res=mysql_store_result(conn);
while((row=mysql_fetch_row(res))!=NULL){
printf("%s \n",row[0]);
}
}
// 清理资源释放内存空间
mysql_free_result(res);
mysql_close(conn);
mysql_library_end();
return EXIT_SUCCESS;
```
这段代码片段说明了怎样构建基本的选择查询并将结果集逐行打印出来。最后记得清理不再使用的变量以防止潜在泄漏问题的发生。
阅读全文
相关推荐


















