向MySQL++查询添加字符串
Adding strings to MySQL++ queries
我正在试用MySQL++并研究查询。我希望能够将字符串变量插入到我的查询中,这样就可以实现以下功能:
query << "CREATE TABLE beer ("
<< "beerID smallint(3) unsigned NOT NULL AUTO_INCREMENT,"
<< "beerName varchar(30) NOT NULL,"
<< "PRIMARY KEY (beerID));";
可能类似于:
query << "CREATE TABLE " << tableName << " ("
<< fieldName1 << " smallint(3) unsigned NOT NULL AUTO_INCREMENT,"
<< fieldName2 << " varchar(30) NOT NULL,"
<< "PRIMARY KEY (" << fieldName1 << "));";
其中tableName、fieldName1和fieldName2都是某些类型的字符串变量,可以在运行时进行修改,以便用户可以在应用程序运行时定义表和字段名(以及以后的表数据)。这样的事情可能吗?如果是,如何?我看到的文档对此不是很清楚,我也没有成功地使用C++字符串。
我还没有成功地使用c++字符串。
当您尝试此操作时,您不会显示会出现什么错误。
我只是这样修改了examples/resetdb.cpp
来做你正在尝试的事情:
--- examples/resetdb.cpp (revision 2716)
+++ examples/resetdb.cpp (working copy)
@@ -132,14 +132,17 @@
// Send the query to create the stock table and execute it.
cout << "Creating stock table..." << endl;
mysqlpp::Query query = con.query();
+ string table_name("stock");
+ string f1("item"), f2("num"), f3("weight"), f4("price"),
+ f5("sdate"), f6("description");
query <<
- "CREATE TABLE stock (" <<
- " item CHAR(30) NOT NULL, " <<
- " num BIGINT NOT NULL, " <<
- " weight DOUBLE NOT NULL, " <<
- " price DECIMAL(6,2) NULL, " << // NaN & inf. == NULL
- " sdate DATE NOT NULL, " <<
- " description MEDIUMTEXT NULL) " <<
+ "CREATE TABLE " << table_name << " (" <<
+ f1 << " CHAR(30) NOT NULL, " <<
+ f2 << " BIGINT NOT NULL, " <<
+ f3 << " DOUBLE NOT NULL, " <<
+ f4 << " DECIMAL(6,2) NULL, " << // NaN & inf. == NULL
+ f5 << " DATE NOT NULL, " <<
+ f6 << " MEDIUMTEXT NULL) " <<
"ENGINE = InnoDB " <<
"CHARACTER SET utf8 COLLATE utf8_general_ci";
query.execute();
我用这些更改重建了MySQL++,重新运行了它的自检套件,它给出了与以前完全相同的测试结果。如果表结构发生了更改,我预计许多测试都会失败。
所以,你一定在做别的事情,但我猜不出你的问题是什么。
您应该看看http://tangentsoft.net/mysql++/doc/html/userman/tutorial.html#qescape
例如生产:
SELECT * FROM stock WHERE item = 'Hotdog Buns'
您可以使用:
string s = "Hotdog Buns";
query << "SELECT * FROM stock WHERE item = " << quote_only << s;
相关文章:
- 如何将字符串添加到布谷鸟过滤器?
- 将常量字符串添加到非常量字符串是否会给出常量字符串
- 如何在C++中为字符串添加字符?
- 在特定位置为字符串添加空格
- 有没有办法将字符串添加到 Vector 中,但前提是它尚不存在?->C++
- 是什么使这个以'+'开头的字符串添加成为有效的语句?
- 如何使用函数将字符串添加到向量中
- 如何在 c++ 中将字符串添加到动态数组?
- 向字符串添加字符
- 向字符串添加位值
- 如何从用户那里接收多个字符串并将这些字符串添加到 c++ 中的数组中?
- 字符串添加数字 C++
- std::字符串添加到字符*
- C++ 向字符串添加"u"
- JSONCPP正在向字符串添加额外的双引号
- C 将N字符串添加到字符串流中
- 以简单且更少的代码方式将字符串添加在一起
- 字符串添加或减法操作员
- 将字符串添加到2D数组并显示COUT消息(没有错误消息?)的错误
- 如何使用递归向字符串添加逗号