溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL第四課 存儲和讀取Json文本

發(fā)布時間:2020-06-16 16:28:47 來源:網(wǎng)絡(luò) 閱讀:620 作者:fengyuzaitu 欄目:編程語言

說明

????????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版本不是線程安全的。


向AI問一下細(xì)節(jié)

免責(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)容。

AI