建站提交历史文章,原文写作时间 2023 年 5 月 18 日前后。
Mysql 与 C/C++
本篇介绍 Windows
Mysql
与 C/C++
开发的连接方法。
本章节不教 SQL 语法。 如尚未学习 SQL
建议与 SQL
混合食用。
编译
-
将 Mysql
安装目录下的 include文件夹
拷贝到工程目录。
-
拷贝安装目录下的 lib\libmysql.dll
、bin\libcrypto-1_1-x64.dll
、bin\libssl-1_1-x64.dll
到工程根目录。
-
用命令行编译(使用其他编译工具其原理都是基于命令行方式的)
1
| g++ main.cpp -o main.exe -I include -L . -l mysql
|
-
dll
动态库必须位于工程根目录,不得重命名。(因为我不会其他方法)
接口
GET START
因为偷懒,这里只有 GET START
,其实关于 SQL
也就只有简单的询问和查询操作,仔细看相信大家都能看懂。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| #include <bits/stdc++.h> #include "mysql.h" using namespace std;
MYSQL mysql; MYSQL_RES *mysql_res; MYSQL_ROW mysql_row;
void display() { int ret = mysql_query(&mysql, "SELECT * FROM score;");
if (ret) { cout << mysql_error(&mysql) << endl; }
mysql_res = mysql_store_result(&mysql);
cout << "ID name age score" << endl; while (mysql_row = mysql_fetch_row(res)) { cout << mysql_row[0] << " "; cout << mysql_row[1] << " "; cout << mysql_row[2] << " "; cout << mysql_row[3] << endl; }
mysql_free_result(mysql_res); }
int main() { mysql_init(&mysql);
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
if (mysql_real_connect(&mysql, "localhost", "root", "root", "school", 3306, NULL, 0) == NULL) { cout << "Connect failed!" << endl; cout << "Errno: " << mysql_errno(&mysql) << endl; cout << "Errmsg: " << mysql_error(&mysql) << endl; exit(-1); }
display();
mysql_close(&mysql); return 0; }
|