C++如何连接MySQL数据库?C++数据库编程实例教程【项目实战】

admin 百科 13
C++连接MySQL推荐初学者用原生C API(轻量稳定),进阶用Connector/C++(面向对象、支持预处理);需安装对应开发包并验证配置工具;C API需手动管理资源,Connector/C++需注意事务提交与空值处理。

C++如何连接MySQL数据库?C++数据库编程实例教程【项目实战】-第1张图片-佛山资讯网

用C++连接MySQL,核心是使用MySQL官方提供的C API(libmysqlclient)或更现代的封装库(如mysqlcppconn,即Connector/C++)。推荐初学者从原生C API入手,轻量、稳定、文档全;进阶项目可考虑Connector/C++(支持面向对象、预处理语句、事务更清晰)。

准备环境:安装MySQL开发包

Windows下下载MySQL Installer,勾选“Developer Components”和“C Connector”;Linux用包管理器安装:

  • Ubuntu/Debian:sudo apt install libmysqlclient-dev libmysqlcppconn-dev
  • CentOS/RHEL:sudo yum install mysql-devel mysql-connector-c++-devel

确保能调用mysql_config --cflags --libs(C API)或mysqlcppconn-config --cflags --libs(Connector/C++)验证路径是否就绪。

用C API连接并查询(简洁可靠)

这是最直接的方式,适合嵌入式或性能敏感场景。注意:C API是C风格,需手动管理连接、结果集、内存。

立即学习“C++免费学习笔记(深入)”;

#include <mysql/mysql.h>
#include <iostream>
<p>int main() {
MYSQL* conn = mysql_init(nullptr);
if (!conn) {
std::cerr << "Init failed\n";
return -1;
}</p><pre class="brush:php;toolbar:false;">// 连接数据库(host, user, passwd, db, port, unix_socket, flag)
if (!mysql_real_connect(conn,
                        "127.0.0.1", "root", "password",
                        "testdb", 3306, nullptr, 0)) {
    std::cerr << "Connect error: " << mysql_error(conn) << "\n";
    mysql_close(conn);
    return -1;
}

// 执行查询
if (mysql_query(conn, "SELECT id, name FROM users LIMIT 3")) {
    std::cerr << "Query error: " << mysql_error(conn) << "\n";
    mysql_close(conn);
    return -1;
}

MYSQL_RES* res = mysql_store_result(conn);
if (res) {
    MYSQL_ROW row;
    while ((row = mysql_fetch_row(res))) {
        std::cout << "ID: " << (row[0] ? row[0] : "NULL")
                  << ", Name: " << (row[1] ? row[1] : "NULL") << "\n";
    }
    mysql_free_result(res);
}

mysql_close(conn);
return 0;

登录后复制

}

编译命令(Linux):
g++ -o demo demo.cpp `mysql_config --cflags --libs`

标签: mysql linux word centos windows ubuntu 工具 ai unix c++ ios wi

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~