Upload images into a MySQL database using VC++






4.33/5 (2 votes)
How to upload images into a MySQL BLOB field using the ODBC driver.
Introduction
This article explains uploading image files into a MysQL database using the MySQL C/C++ libraries or MySQL ODBC drivers. When I try to upload image files into MySQL, I was able to read it as bytes or characters but I couldn't insert an image into a MySQL BLOB field using the ExecuteSQL
function in the CDatabase
class.
Image files contain special characters especially escape sequences. If we want to upload an image file, read it as a string or character constants, and replace all (\) with (\\). My library does this as well. My library function converts unformatted data into formatted data. We can then easily upload it to a MySQL database.
Using the code
The downloadable zip file contains...
- mysqlfileimportexport.dll
- mysqlfileimportexport.lib
- mysqlfileimportexport.h
The following code snippet describes how to use mysqlfileimportexport.dll.
Class name: Cmysqlfileimportexport
Method: blob_Import
- Step 1: Include this header file and library file into your code.
#include "mysqlfileimportexport.h"
#pragma comment(lib,mysqlfileimportexport.lib)
CDatabase db_Obj;
//Database connection code here
db.Obj.OpenEx(...)
Cmysqlfileimportexport lib_Obj;
LPSTR Buffer = NULL;
int iReturnValue = lib_Obj.blob_Import("c:\\xx\\yyy.abc",&Buffer);
//If return 0 success, otherwise failiure.
CString sQuery;
sQuery.Format("INSERT INTO tablename fieldname(LONGBLOB) VALUES('%s')", Buffer);
db_Obj.ExecuteSQL(sQuery);
...
Note
Don't forget to add mysqlfileimportexport.dll in your project directory.