【MySQL】mysql C/C++ connect
makefile

test.cc
#include <iostream>
#include <mysql/mysql.h>
const std::string host = "127.0.0.1";
const std::string user = "connector";
const std::string passward = "123456";
const std::string db_name = "mysql_conn";
const unsigned int port = 3306;
int main()
{
MYSQL *my = mysql_init(nullptr);
if (my == nullptr)
{
std::cerr << "mysql init error" << std::endl;
return 2;
}
if (mysql_real_connect(my, host.c_str(), user.c_str(), passward.c_str(), db_name.c_str(), port, nullptr, 0) == nullptr)
{
std::cerr << "mysql connect error" << std::endl;
return 3;
}
std::string sql = "select * from fortest;";
int n = mysql_query(my, sql.c_str());
if (n == 0)
{
std::cout << sql << "success:" << n << std::endl;
;
}
else
{
std::cout << "mysql_query fail:" << n << std::endl;
return 4;
}
MYSQL_RES *res = mysql_store_result(my);
if (nullptr == res)
{
std::cerr << "mysql_store_result error";
return 5;
}
int rows = mysql_num_rows(res);
int fields = mysql_num_fields(res);
std::cout << "行:" << rows << std::endl;
std::cout << "列:" << fields << std::endl;
MYSQL_FIELD *field_array = mysql_fetch_field(res);
for(int i = 0; i < fields; i++)
{
std::cout << field_array[i].name << "\t";
}
std::cout << std::endl;
for(int i = 0; i < rows; i++)
{
MYSQL_ROW row = mysql_fetch_row(res);
for(int j = 0; j < fields; j++)
{
std::cout << row[j] << "\t";
}
std::cout << "\n";
}
std::cout << "database_name: " << field_array[0].db << std::endl;
std::cout << "table_name: " << field_array[0].table << std::endl;
mysql_free_result(res);
mysql_close(my);
return 0;
}