// 首先,大家需要连接数据库 MYSQL mysql; mysql_init(&mysql); mysql_real_connect(&mysql, "localhost", "root", "123456", "test_db", 0, NULL, 0); // 构造SQL查询语句,读取BLOB数据 string sql = "SELECT blob_data FROM blob_table WHERE id = 1"; mysql_query(&mysql, sql.c_str()); MYSQL_RES* res = mysql_store_result(&mysql); MYSQL_ROW row = mysql_fetch_row(res); // 获取BLOB数据的长度,这里的blob_data列为BLOB类型 unsigned long blob_len = mysql_fetch_lengths(res)[0]; // 将BLOB数据转换为char类型数据 char* blob_data = row[0]; char* buffer = new char[blob_len+1]; memset(buffer, 0, blob_len+1); memcpy(buffer, blob_data, blob_len); // 释放资源 mysql_free_result(res); mysql_close(&mysql);
上面的代码,首先大家通过连接数据库的方式连接到test_db数据库,然后仅仅需要使用一条SELECT语句,读取BLOB类型的数据。使用mysql_fetch_lengths函数就可以得到BLOB类型数据的长度,使用memcpy函数将数据从blob_data中复制出来,最后使用free函数释放资源,整个操作就完成了。