使用 VC++ 将图像上传到 MySQL 数据库






4.33/5 (2投票s)
如何使用 ODBC 驱动程序将图像上传到 MySQL BLOB 字段。
引言
本文档介绍了使用 MySQL C/C++ 库或 MySQL ODBC 驱动程序将图像文件上传到 MySQL 数据库的方法。当我尝试将图像文件上传到 MySQL 时,我能够将其读取为字节或字符,但无法使用 CDatabase
类中的 ExecuteSQL
函数将图像插入到 MySQL BLOB 字段中。
图像文件包含特殊字符,尤其是转义序列。如果我们要上传图像文件,将其读取为字符串或字符常量,并将所有 (\) 替换为 (\\)。我的库也执行此操作。我的库函数将未格式化的数据转换为格式化的数据。然后我们可以轻松地将其上传到 MySQL 数据库。
使用代码
可下载的 zip 文件包含…
- mysqlfileimportexport.dll
- mysqlfileimportexport.lib
- mysqlfileimportexport.h
以下代码片段描述了如何使用 mysqlfileimportexport.dll。
类名:Cmysqlfileimportexport
方法:blob_Import
- 步骤 1:将此头文件和库文件包含到您的代码中。
#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);
...
注意
不要忘记将 mysqlfileimportexport.dll 放在您的项目目录中。