65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (2投票s)

2008 年 5 月 28 日

CPOL

1分钟阅读

viewsIcon

47429

downloadIcon

2135

如何使用 ODBC 驱动程序将图像上传到 MySQL BLOB 字段。

引言

本文档介绍了使用 MySQL C/C++ 库或 MySQL ODBC 驱动程序将图像文件上传到 MySQL 数据库的方法。当我尝试将图像文件上传到 MySQL 时,我能够将其读取为字节或字符,但无法使用 CDatabase 类中的 ExecuteSQL 函数将图像插入到 MySQL BLOB 字段中。

图像文件包含特殊字符,尤其是转义序列。如果我们要上传图像文件,将其读取为字符串或字符常量,并将所有 (\) 替换为 (\\)。我的库也执行此操作。我的库函数将未格式化的数据转换为格式化的数据。然后我们可以轻松地将其上传到 MySQL 数据库。

使用代码

可下载的 zip 文件包含…

  1. mysqlfileimportexport.dll
  2. mysqlfileimportexport.lib
  3. mysqlfileimportexport.h

以下代码片段描述了如何使用 mysqlfileimportexport.dll

类名:Cmysqlfileimportexport

方法:blob_Import

  • 步骤 1:将此头文件和库文件包含到您的代码中。
  • #include "mysqlfileimportexport.h"   
    #pragma comment(lib,mysqlfileimportexport.lib)
  • 步骤 2:编写数据库连接的代码。
  • CDatabase db_Obj;
    
    //Database connection code here
    db.Obj.OpenEx(...)
  • 步骤 3:将这些行包含到您的代码中
  • 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);
  • 步骤 4:使用数据库连接变量执行查询。
  • db_Obj.ExecuteSQL(sQuery);
    ...

注意

不要忘记将 mysqlfileimportexport.dll 放在您的项目目录中。

© . All rights reserved.