c++ - 如何将二进制 std::string 插入 BLOB

标签 c++ mysql blob

我有二进制 std::string,我需要使用我拥有的简单数据层将它插入 BLOB (MySQL)。所以,我需要执行查询:ExecuteSQL((LPTSTR)strQ)

当我创建此查询字符串 (strQ) 时,我无法在添加此二进制字符串后向该字符串添加任何内容 - 如果终止并且无法添加任何内容,它就会正常。我不想使用 mysql_real_escape_string 因为我不仅要为 MySQL 保留它。

请有人帮忙!!!

最佳答案

假设您的代码看起来像这样:

std::string s = ...      // populate string somehow
ExecuteSQL( (LPCSTR) s );

然后你有几个问题。 ForSTLy, Actor 阵容将无法正常工作。在 C++ 中,每当您使用强制转换时,您几乎肯定会做一些不正确的事情,这会破坏您的代码。您需要使用 std::string 成员函数 c_str() 创建一个以 null 结尾的字符串:

ExecuteSQL( s.c_str() );

但是,这可能无法解决您所有的问题,因为您说您有一个二进制字符串。如果该字符串包含零字节,那么您的 SQL 将终止于该字符而不是字符串的末尾。在这种情况下,您可能需要调查明确绑定(bind)您的值。

编辑:有关如何将参数绑定(bind)到 MySQL 语句的详细信息,请参阅 http://dev.mysql.com/doc/refman/5.1/en/mysql-stmt-bind-param.html

关于c++ - 如何将二进制 std::string 插入 BLOB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/733262/

相关文章:

php - 如何使用php在html表中的每一行中找到最小值

mysql - 如何在hql中使用字符串左函数

PHP/SQL - 更新、执行并返回成功但数据库中没有更新

sql-server - HTML5 视频标签。某些 .MP4 视频在 Chrome 中不起作用

c++ - 使用具有不同编译器版本的 boost 库

c++ - 内存映射文件 C++

c++ - 从字符串中取出整数 C++

c++ - 矩阵 A 的 boolean 积

python - 从 mysql 打印/解析 csv blob 文件

javascript - 如何从 JavaScript 中的 URL 获取 File() 或 Blob()?