如何通过C++代码在MySQL数据库中存储控制字符
How to store control characters in MySQL DB through C++ code?
我有一个需求。在我的项目中,我需要存储控制字符(ASCII字符的范围从0到31)。但在这里我需要以字符的形式存储。我写了一个c代码,但没有用。我把我写的代码贴在这里。我的IDE是Visual Studio 2010,我使用的是MySQL连接器C 6.0.2
#include "stdafx.h"
#include <iostream>
#include <string>
#include<my_global.h>
#include <mysql.h>
using namespace std;
MYSQL* Connection, MySQL;
int _tmain(int argc, _TCHAR* argv[])
{
int i;
string sData;
char SQLString[384];
for(i=0;i<=31;i++)
sData+=i;
char *Hostname="localhost", *Username="root", *Password="system123", *Database="file_data";
mysql_init(&MySQL);
Connection = mysql_real_connect(&MySQL, Hostname, Username, Password, Database, 0, 0, 0);
if (Connection == NULL)
exit(1);
sprintf_s(SQLString,384,"set sql_mode='NO_BACKSLASH_ESCAPES';");
mysql_query(Connection, SQLString );
sprintf_s(SQLString,384,"insert into file_values(first_data)values('%s')",sData.c_str());
mysql_query(Connection, SQLString );
return 0;
}
在这里,在编写实际的项目代码之前,我编写了一个示例应用程序来测试它是否能够存储,但通过使用上面的代码,我无法将控制字符存储在file_values表的first_data列中。
first_data的数据类型是大小为33的varchar。
Plz让我知道我需要在上面的代码中做什么来满足我的需求。
谢谢大家。
您可能应该为此使用准备好的语句,而不是试图将字符代码嵌入字符串中。您还可以更好地使用blob数据类型,而不是字符串。
下面是一个(未经测试)如何使用准备好的语句存储blob的示例:
MYSQL_STMT* statement = mysql_stmt_init(Connection);
std::string statementStr = "insert into file_values(first_data) values (?)";
mysql_stmt_prepare( &statement, statementStr.c_str(), statementStr.length() );
MYSQL_BIND parameter;
parameter[0].buffer_type= MYSQL_TYPE_BLOB;
parameter[0].buffer= (char*)sData.c_str();
parameter[0].is_null= 0;
parameter[0].length= sData.length();
mysql_stmt_bind_param( statement, ¶meter );
mysql_stmt_execute(stmt);
mysql_stmt_close(statement);
或者,如果您需要为列类型使用varchar,您可能只需将上面的buffer_type替换为MYSQL_TYPE_STRING
相关文章:
- 使用 pqxx 将 std::vector 存储在 postgresql 中,并从数据库中检索它
- Sqlite3:将数据库表名存储在向量中
- 将产品数据库存储在Arduino上
- 将指针存储到SQLITE3数据库中的类别抛出segfault
- 添加两个时间值存储为数据库中的字符串
- 如何轻松快速地存储大型单词数据库?
- 在这种情况下,将数据存储在诸如SQLite之类的数据库中,还是存储在平面文本文件中更好
- 鸟类调查中的项目在代码中遇到问题.如何像数据库系统一样存储数据
- 在哪里可以在Windows和OS X上存储SQLite数据库
- 将公共密钥存储在数据库(C )中
- 将大量数据存储在数据库中的最有效方法
- 如何在小型聊天应用程序中为数据库存储的用户事务建模
- 从数据库中以 blob 数据类型形式存储的原始图像数据中检索 CImage 对象
- 如何通过C++代码在MySQL数据库中存储控制字符
- 将 Oracle 数据库表的 ROWID 存储为字符数组
- 黑莓 10 数据库持久存储
- QT C++ 将文件从数据库存储到我的文件系统
- 从数据库中选择客户端的信息并存储到向量中
- 逐像素比较2个图像(第一个图像存储在数据库中)
- 其中是存储在ODBC++示例中的sqlite数据库文件