您好,登錄后才能下訂單哦!
說明
????????Json文本的字段屬性設置為Blob類型,默認情況下可容納65KB數據,存儲和讀取按照正常的字符串存儲和讀取
存儲例子
int StoreJsonText(const std::string &strMsg)
{
//加鎖,因為不是線程安全的
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<<"連接數據庫失敗";
??mysql_close(pMySqlHandle);
??return -1;
?}
?else
?{
??std::cout<< "連接數據庫成功";
?}
?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()會初始化一些線程私有數據,如果在不同的地方調用mysql_real_connect可能會出現內存訪問沖突,因此需要加鎖進行訪問控制,MySQL C版本不是線程安全的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。