c++
复制代码
#include <iostream>
#include "test-crud.h"
using namespace std;
testCrud::testCrud() {
// 设置链接
con = mysql_init(NULL);
// 设置编码
mysql_options(con, MYSQL_SET_CHARSET_NAME, "GBK");
// 声明链接
if (!mysql_real_connect(con, host, user, password, database_name, port, NULL, 0)) {
cerr << "Failed to connect to database Error: " << mysql_error(con) << endl;
exit(1);
}
}
testCrud::~testCrud() {
//关闭连接
mysql_close(con);
}
//插入
bool testCrud::test_insert(Test& test) {
char sql[1024];
sprintf_s(sql, sizeof(sql), "INSERT INTO test (id,name) VALUES (%d,'%s')", test.id, test.name.c_str());
if (mysql_query(con, sql)) {
cerr << "Failed to insert to database Error: " << mysql_error(con) << endl;
return false;
}
return true;
}
//修改
bool testCrud::test_update(Test& test) {
char sql[1024];
sprintf_s(sql, sizeof(sql), "UPDATE test SET name = '%s' WHERE id = %d", test.name.c_str(),test.id);
if (mysql_query(con, sql)) {
cerr << "Failed to update to database Error: " << mysql_error(con) << endl;
return false;
}
return true;
}
//删除
bool testCrud::test_delete(Test& test) {
char sql[1024];
sprintf_s(sql, sizeof(sql), "DELETE FROM test WHERE id = %d",test.id);
if (mysql_query(con, sql)) {
cerr << "Failed to delete to database Error: " << mysql_error(con) << endl;
return false;
}
return true;
}
//查询
vector<Test> testCrud::test_select(string condition) {
vector<Test> testList;
char sql[1024];
//若condition为空,查出所有的数据
sprintf_s(sql, sizeof(sql), "SELECT * FROM test %s", condition.c_str());
if (mysql_query(con, sql)) {
cerr << "Failed to select to database Error: " << mysql_error(con) << endl;
return {};
}
MYSQL_RES* res = mysql_store_result(con);
MYSQL_ROW row;
while ((row = mysql_fetch_row(res))) {
Test test;
test.id = atoi(row[0]);
test.name = atoi(row[1]);
testList.push_back(test);
}
return vector<Test>();
}