MySQL儲存二進位制資料

2021-06-19 22:58:06 字數 1890 閱讀 7353

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

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

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

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

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

先來乙個插入:

int

db_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);

return 0;

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;

}

php以及perl中的操作也是大同小異~

over~

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 命令提示視窗,你可以...