封裝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(請連接數(shù)據(jù)庫!!!\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(查詢時(shí)出錯(cuò): %s !!!\n, mysql_error(sql)); return -1; } MYSQL_RES *m_res NULL; m_res mysql_store_result(sql);//將結(jié)果保存在res結(jié)構(gòu)體中 //循環(huán)打印每行每個(gè)字段 MYSQL_ROW row NULL; row mysql_fetch_row(m_res); if (NULL row) { printf(沒有查詢到對應(yīng)的數(shù)據(jù)!!!\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

相關(guān)新聞

vue中央事件總線bus

vue中央事件總線bus

全局 1、新建 eventBus.js 文件import Vue from vue export default new Vue()2、引用 (哪里要用就import eventBus.js 文件)$on : 監(jiān)聽 $emit :觸發(fā) $off : 釋放 ( 監(jiān)聽后一定要在beforeDestroy中釋放)

2026/7/28 19:54:23 閱讀更多
芯片設(shè)計(jì)CAD圖紙與TinyMCE集成的SVG解決方案

芯片設(shè)計(jì)CAD圖紙與TinyMCE集成的SVG解決方案

1. 芯片制造企業(yè)CAD圖紙與TinyMCE集成的核心挑戰(zhàn)在芯片設(shè)計(jì)領(lǐng)域,CAD圖紙是工程師的"設(shè)計(jì)語言"。我們每天需要將版圖(Layout)、原理圖(Schematic)等設(shè)計(jì)文件插入技術(shù)文檔系統(tǒng)。傳統(tǒng)截圖方式會(huì)導(dǎo)致&#xff1a…

2026/7/28 19:54:23 閱讀更多
第三十五周學(xué)習(xí)生活總結(jié)

第三十五周學(xué)習(xí)生活總結(jié)

今天是2019年9月1日,是開學(xué)的第一天,不過正好趕上周末,我們也沒有課。這是一個(gè)輕松地開始,但不代表是一個(gè)簡單的過程。 小組剛剛才把官網(wǎng)項(xiàng)目新聞模塊加載更多寫完,從昨天晚上寫到現(xiàn)在,雖說技術(shù)難度并不高&…

2026/7/28 19:44:22 閱讀更多
AI學(xué)術(shù)寫作工具:六維提升研究效率與質(zhì)量

AI學(xué)術(shù)寫作工具:六維提升研究效率與質(zhì)量

1. 項(xiàng)目概述:AI如何重塑學(xué)術(shù)寫作體驗(yàn)去年指導(dǎo)本科生論文時(shí),我發(fā)現(xiàn)一個(gè)有趣現(xiàn)象:90%的學(xué)生把80%時(shí)間花在格式調(diào)整、文獻(xiàn)引用和語言潤色上,真正用于思考研究問題的時(shí)間不足20%。這種現(xiàn)象催生了"書匠策AI"的雛形——一個(gè)?!?/p>

2026/7/29 2:46:00 閱讀更多
nmcli網(wǎng)絡(luò)管理實(shí)戰(zhàn):從基礎(chǔ)配置到服務(wù)器網(wǎng)卡綁定(Bonding)詳解

nmcli網(wǎng)絡(luò)管理實(shí)戰(zhàn):從基礎(chǔ)配置到服務(wù)器網(wǎng)卡綁定(Bonding)詳解

1. 從命令行到網(wǎng)絡(luò)穩(wěn)定:為什么我選擇nmcli管理網(wǎng)絡(luò)在服務(wù)器和虛擬化平臺(tái)的管理中,網(wǎng)絡(luò)配置的穩(wěn)定性和靈活性是基石。過去,我們習(xí)慣于直接編輯/etc/sysconfig/network-scripts/目錄下那些以ifcfg-開頭的配置文件,或者使用ifconfig、…

2026/7/29 2:46:00 閱讀更多
ROS語音交互實(shí)戰(zhàn):基于Vosk的離線語音控制機(jī)器人系統(tǒng)搭建

ROS語音交互實(shí)戰(zhàn):基于Vosk的離線語音控制機(jī)器人系統(tǒng)搭建

1. 項(xiàng)目概述:從“小海龜”到“會(huì)說話的機(jī)器人”如果你已經(jīng)跟著教程跑通了ROS的“小海龜”例程,讓那個(gè)小三角在屏幕上轉(zhuǎn)了幾圈,心里可能會(huì)想:這確實(shí)很酷,但離我心目中那個(gè)能聽會(huì)動(dòng)、能交互的智能機(jī)器人似乎還差了點(diǎn)意思…

2026/7/29 2:46:00 閱讀更多
基于Exif解析與人臉聚類的照片智能分類整理方案與實(shí)踐

基于Exif解析與人臉聚類的照片智能分類整理方案與實(shí)踐

一、引言我最近在整理自己積累多年的照片庫時(shí),遇到了一個(gè)非常實(shí)際的問題:手機(jī)相冊常年維持在2萬張照片,電腦里還有幾個(gè)TB的歷史照片庫。每次想找某張照片,都得在文件夾里翻很久。于是我花了一些時(shí)間調(diào)研了市面上主流的照片智能管理…

2026/7/29 2:46:00 閱讀更多
菜鳥心得001

菜鳥心得001

LeetCode字符串簡單題13:羅馬數(shù)字轉(zhuǎn)整數(shù) 思路:根據(jù)ds,本題用字典才是最簡單最快的方法,但是由于本人還沒學(xué)字典的用法,所以第一反應(yīng)是用笨拙的逐字循環(huán)讀取,根據(jù)已知條件計(jì)算求和。 問題和方案&#xff1a…

2026/7/29 2:46:00 閱讀更多
Proxmark3高級應(yīng)用:EMV銀行卡與FIDO安全密鑰協(xié)議分析與安全評估實(shí)戰(zhàn)

Proxmark3高級應(yīng)用:EMV銀行卡與FIDO安全密鑰協(xié)議分析與安全評估實(shí)戰(zhàn)

1. 項(xiàng)目概述:從“讀卡器”到“安全分析儀”的認(rèn)知躍遷如果你手頭有一臺(tái)Proxmark3,卻還只停留在復(fù)制門禁卡、克隆低頻ID卡的階段,那無疑是“殺雞用牛刀”,甚至可以說是暴殄天物。這臺(tái)被圈內(nèi)人戲稱為“瑞士軍刀”的射頻安全工具&…

2026/7/29 2:36:00 閱讀更多
面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

前兩個(gè)月,我在重構(gòu) AlgoMooc 網(wǎng)站過程中,發(fā)現(xiàn)一個(gè)問題:在 Claude Code 里把一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,結(jié)果可能比 1 個(gè) agent 從頭干到尾還慢? 大多數(shù)人的第一反應(yīng)是反過來的:活是并行干的&#…

2026/7/29 0:15:24 閱讀更多
# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號與動(dòng)畫渲染精講

# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號與動(dòng)畫渲染精講

一、應(yīng)用概述 骰子(Dice Roller) 是一款經(jīng)典的休閑娛樂應(yīng)用,模擬了真實(shí)擲骰子的過程。應(yīng)用投擲兩個(gè)骰子(六面標(biāo)準(zhǔn)骰),使用 Unicode 骰面符號直觀展示每個(gè)骰子的點(diǎn)數(shù),并伴有快速滾動(dòng)的動(dòng)畫效果?!?/p>

2026/7/29 0:15:24 閱讀更多