c++ 连接mysql有两种方法,一种是通过odbc调用,另一种是通过mysql提供的c api进行调用
我才不是把两种方法搞混了稀里糊涂装了odbc却抄的mysql c api的代码呢
参考: Linux下C++访问MySQL数据库
首先要安装libmysql++
库:
1
| sudo apt-get install libmysql++-dev
|
代码示例:
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
| #include <iostream> #include <mysql/mysql.h> #include <cstdlib> using namespace std; int main(int argc, char const *argv[]) { MYSQL mysql; mysql_init(&mysql); mysql = *mysql_real_connect(&mysql, "127.0.0.1", "root", "root", "blhxbot", 0, NULL, 0); mysql_query(&mysql, "show tables"); MYSQL_RES *result; result = mysql_store_result(&mysql); while(MYSQL_ROW row = mysql_fetch_row(result)) { for (int j = 0; j < mysql_num_fields(result); j++) { cout << row[j]<<" "; } cout << endl; } mysql_close(&mysql); return 0; }
|
原文 Linux下C++访问MySQL数据库中,mysql_field_count表示的是列数,而mysql_fetch_row取出的一整行,包括所有列,故mysql_field_count不能作为循环的指标。使用while循环可取出每一行。
注:g++编译时要链接库,否则会报错
1 2
| g++ new_cpp.cpp -o new_cpp -lmysqlclient ./new_cpp
|