我知道如何(使用C++)将非变量值插入到MySql表中:
例如:
//Table person:
mysql_query(conn, "INSERT INTO MyTable VALUES ( '1', 'John', 'Kennedy')");
mysql_query(conn, "INSERT INTO MyTable VALUES ( '2', 'Dave', 'Chappelle')");
mysql_query(conn, "INSERT INTO MyTable VALUES ( '3', 'Arnold', 'Schwarzenegger')");
//Up to 100 rows of data...我想要做的是能够使用C++将变量插入到表中:
例如:
i=0;
for(i=0; i < 100; i++)
{
mysql_query(conn, "INSERT INTO MyTable VALUES ( i, 'FirstName', 'LastName')");
}我希望能够使用for循环,并递增一个变量来为我创建行,而不必手动键入100行数据。
有人知道如何使用C++将变量插入到mysql数据库中吗?
发布于 2012-11-26 11:48:06
我不太熟悉让它工作的语法,但您想要的是Prepared Statements的通用版本。您可以创建一个以变量作为占位符的语句。这些值将在以后提供并使用。
编辑:您可以在MySQL website中找到有关在c++中使用预准备语句的更多信息
// ...
sql::Connection *con;
sql::PreparedStatement *prep_stmt
// ...
prep_stmt = con->prepareStatement("INSERT INTO test(id, label) VALUES (?, ?)");
prep_stmt->setInt(1, 1);
prep_stmt->setString(2, "a");
prep_stmt->execute();
prep_stmt->setInt(1, 2);
prep_stmt->setString(2, "b");
prep_stmt->execute();
delete prep_stmt;
delete con;发布于 2015-08-18 23:22:49
你可以通过以下方式来完成
int var = 10;
string str = to_string(var);
string requete="INSERT INTO stat(temps) VALUES (\"";
requete += str;
requete += "\")";
mysql_query(&mysql,requete.c_str());只需在mySql中指定字段的类型为整型、双精度型、浮点型等。
发布于 2012-11-26 11:54:13
在执行查询之前,您需要先生成查询字符串。将下面的printf替换为一个string类实例。你可能也想把它放在一个字符串向量中。
char queryFmt[]="INSERT INTO myTable VALUES('%d','%s',%s)\n";
char color[16];
char fruit[32];
for(int i=0;i<2;i++)
{
//scanf_s("%s",color);
//scanf_s("%s",fruit);
std::cin>>color;
std::cin>>fruit;
printf_s(queryFmt,i,color,fruit);
}如果您还不知道并且感兴趣,请参考许多相关的问题,使用scanf在循环中读入字符或字符串。
https://stackoverflow.com/questions/13558369
复制相似问题