mysql 儲存二進位制資料

2022-03-15 02:56:35 字數 1973 閱讀 1859

晚上小研究了下mysql儲存於讀取二進位制資料的功能。關鍵步驟為以下三點:

最重要的一點:儲存二進位制資料的表的型別需要是blob型別(按長度不同分為tiny, media,

long

) 插入二進位制資料時需要利用mysql_real_escape_string函式對資料進行轉換

從資料庫中讀取二進位制資料時需要利用mysql_fetch_length函式字段長度,該函式需要在mysql_fetch_row呼叫後才可以正常獲取結果

給出乙個用c寫的乙個儲存與讀取欄位的小例子,寫的比較粗獷,見諒哈~先來乙個插入:

複製**

intdb_insert_object(

void *object, unsigned int

objsize)

/*convert binary string

*/escape_object = (char *)malloc(escape_size);

if( escape_object ==null )

escape_size = mysql_real_escape_string(mysql, escape_object, (char *)object

, objsize);

sql_len = sprintf(sql, "

insert into task(object) values('%s')

", escape_object);

ret =mysql_real_query(mysql, sql, sql_len);

if( ret )

free(escape_object);

mysql_close(mysql);

return0;

error1:

printf(

"error: %s\n

", mysql_error(mysql));

if( mysql ) mysql_close(mysql);

if( escape_object ) free(escape_object);

return -1;}

複製**

然後是讀取:

複製**

void *db_fetch_object()

/*get object

*/ret =mysql_real_query(mysql, sql, strlen(sql));

if( ret )

res =mysql_store_result(mysql);

if( res ==null )

/*important

*/row =mysql_fetch_row(res);

row_len = mysql_fetch_lengths(res); /*

get the object's length

*/if( row_len ==null )

objsize = row_len[0

];

object = (char*)malloc(objsize);

if( object ==null )

memcpy(

object, row[0

], objsize);

mysql_close(mysql);

mysql_free_result(res);

return (void*)object

;error2:

printf(

"error: %s\n

", mysql_error(mysql));

if( res ) mysql_free_result(res);

if( mysql ) mysql_close(mysql);

if( object ) free(object

);

return

null;

}

好像還有一種直接點mysql api可以儲存二進位制資料。

MySQL儲存二進位制資料

晚上小研究了下mysql儲存於讀取二進位制資料的功能。關鍵步驟為以下三點 最重要的一點 儲存二進位制資料的表的型別需要是blob型別 按長度不同分為tiny,media,long 插入二進位制資料時需要利用mysql real escape string函式對資料進行轉換 從資料庫中讀取二進位制資料...

mysql儲存二進位制 mysql 儲存二進位制資料

晚上小研究了下mysql儲存於讀取二進位制資料的功能。關鍵步驟為以下三點 最重要的一點 儲存二進位制資料的表的型別需要是blob型別 按長度不同分為tiny,media,long 插入二進位制資料時需要利用mysql real escape string函式對資料進行轉換 從資料庫中讀取二進位制資料...

mysql二進位制 MySql二進位制連線方式詳解

使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命令提示視窗,你可以...