關(guān)于c mysql mediumblob
在C語(yǔ)言中,我們可以使用MySQL中的mediumblob類(lèi)型進(jìn)行二進(jìn)制數(shù)據(jù)的存儲(chǔ)和操作。Medium Blob是一種MySQL的數(shù)據(jù)類(lèi)型,用于處理中等大小的二進(jìn)制數(shù)據(jù),通常用于存儲(chǔ)圖片文件、音頻文件等二進(jìn)制文件數(shù)據(jù)。
使用mediumblob類(lèi)型需要注意的是,其在數(shù)據(jù)庫(kù)中的最大存儲(chǔ)空間是16M,超過(guò)這個(gè)大小需要使用longblob類(lèi)型。
下面是使用C語(yǔ)言操作MySQL mediumblob類(lèi)型的代碼示例:
#include <mysql/mysql.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #define MAX_LEN 1000000 int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "root"; char *password = "password"; char *database = "mydb"; char *blob_data = "this is a medium blob data"; char query[MAX_LEN]; int query_len = 0; int blob_len = 0; int id; conn = mysql_init(NULL); if(!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)){ fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } //創(chuàng)建表 query_len = sprintf(query, "CREATE TABLE mytable (id INT NOT NULL AUTO_INCREMENT, blob_data MEDIUMBLOB, PRIMARY KEY(id))"); if(mysql_query(conn, query)){ fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } //插入數(shù)據(jù) blob_len = strlen(blob_data); query_len = sprintf(query, "INSERT INTO mytable (blob_data) VALUES ('%*.*s')", blob_len, blob_len, blob_data); if(mysql_query(conn, query)){ fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } //獲取數(shù)據(jù) query_len = sprintf(query, "SELECT * FROM mytable"); if(mysql_query(conn, query)){ fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } res = mysql_use_result(conn); while((row = mysql_fetch_row(res)) != NULL){ printf("The id %s contains medium blob data: ", row[0]); id = atoi(row[0]); printf("%s\n", row[1]); } //刪除數(shù)據(jù) query_len = sprintf(query, "DELETE FROM mytable WHERE id=%d", id); if(mysql_query(conn, query)){ fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } //刪除表 query_len = sprintf(query, "DROP TABLE mytable"); if(mysql_query(conn, query)){ fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } mysql_free_result(res); mysql_close(conn); return 0; }