封装mysql SDK
/*测试代码 char**results; char**field new char*[4]; field[0] new char[64]; field[1] new char[64]; field[2] new char[64]; field[3] NULL; char*sn sn_id; char*name name; char*electricity request_count; strcpy_s(field[0], 64, sn); strcpy_s(field[1], 64, name); strcpy_s(field[2], 64, electricity); err seleteData(results, tableName, s_equipment_key, field); frees(field); frees(results); */ int selete_data(char**result, char* tableName, char* id, char**field) { MYSQL * sql get_mysql(); if (sql NULL) { printf(请连接数据库!!!\n); return NULL; } /*----------------------------------------SELECT字符串拼接start--------------------------------------*/ char* select SELECT %s ; int length strlen(select) strlen(field[0]) - 1; char*sentence (char*)calloc(length, sizeof(char)); sprintf_s(sentence, length, select, field[0]); int count 0; pointer_count((void**)field, count); for (int i 1; i count; i) { select ,%s ; length strlen(sentence); append_new_buffer(sentence, length, select, strlen(select));//SELECT sn_id ,%s length strlen(sentence) strlen(field[i]) - 1; char*select_ (char*)calloc(length, sizeof(char)); sprintf_s(select_, length, sentence, field[i]);////SELECT sn_id ,na_id if (sentence ! NULL) { free(sentence); sentence NULL; } sentence select_; } select FROM %s WHERE id%s; length strlen(sentence); append_new_buffer(sentence, length, select, strlen(select));//SELECT sn_id ,%s length length strlen(tableName) strlen(id) - 3; char*sentence_ (char*)calloc(length, sizeof(char)); sprintf_s(sentence_, length, sentence, tableName, id); if (sentence ! NULL) { free(sentence); sentence NULL; } /*-------------------------------------SELECT字符串拼接end-----------------------------------------*/ int err mysql_real_query(sql, sentence_, length); if (sentence_ ! NULL) { free(sentence_); sentence_ NULL; } if (err) { printf(查询时出错: %s !!!\n, mysql_error(sql)); return -1; } MYSQL_RES *m_res NULL; m_res mysql_store_result(sql);//将结果保存在res结构体中 //循环打印每行每个字段 MYSQL_ROW row NULL; row mysql_fetch_row(m_res); if (NULL row) { printf(没有查询到对应的数据!!!\n); return -1; } result (char**)calloc(count 1, sizeof(char*)); unsigned int t; for (t 0; t mysql_num_fields(m_res); t) { int length strlen(row[t]) 1; result[t] (char*)calloc(length, sizeof(char)); strcpy_s(result[t], length, row[t]); } result[t] NULL; /*for (t 0; t count; t) { printf(%s:%s\n, field[t], result[t]); }*/ mysql_free_result(m_res); return 0; }这是最初版本。请移步github

相关新闻