您好,登錄后才能下訂單哦!
說明
????????Json文本的字段屬性設(shè)置為Blob類型,默認(rèn)情況下可容納65KB數(shù)據(jù),存儲和讀取按照正常的字符串存儲和讀取
存儲例子
int StoreJsonText(const std::string &strMsg)
{
//加鎖,因?yàn)椴皇蔷€程安全的
boost::mutex::scoped_lock lock(m_mutexMySQLConn);
?MYSQL mysql, *pMySqlHandle = nullptr;
?const char* pUnixSocket = NULL;
?mysql_init(&mysql);
?mysql_set_character_set(&mysql, "utf8");
?if ((pMySqlHandle = mysql_real_connect(&mysql, "127.0.0.1", "admin", "admin", "test", 3306, pUnixSocket, 0)) == NULL) //連接MySQL
?{
? std::cout<<"連接數(shù)據(jù)庫失敗";
??mysql_close(pMySqlHandle);
??return -1;
?}
?else
?{
??std::cout<< "連接數(shù)據(jù)庫成功";
?}
?char szSql[512] = { 0 };
?sprintf(szSql, "insert into test(id, detail, time) values(uuid(), '%s', now())", strMsg.c_str());
?if (mysql_query(&mysql, szSql))
?{
??std::cout<<"上傳失敗";
??return -3;
?}
?int nAffectRow = mysql_affected_rows(&mysql);
?mysql_close(pMySqlHandle);
?return nAffectRow;
}
注意
????????mysql_init()會初始化一些線程私有數(shù)據(jù),如果在不同的地方調(diào)用mysql_real_connect可能會出現(xiàn)內(nèi)存訪問沖突,因此需要加鎖進(jìn)行訪問控制,MySQL C版本不是線程安全的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。