将变量插入mysql表

Jam*_*iaz 3 c++ mysql sql winapi

我知道如何将非变量值插入MySql表(使用C++):

例如:

//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...
Run Code Online (Sandbox Code Playgroud)

我想要做的是能够使用C++将变量插入到表中:

例如:

i=0;
for(i=0; i < 100; i++)
{
mysql_query(conn, "INSERT INTO MyTable VALUES ( i, 'FirstName', 'LastName')"); 
}
Run Code Online (Sandbox Code Playgroud)

我不想手动输入100行数据,而是希望能够使用for循环,并增加一个变量来为我创建行.

有谁知道如何使用C++将变量插入到mysql数据库中?

Kar*_*k T 5

我不太熟悉使其工作的语法,但您想要的通用版本是Prepared Statements.您创建一个包含变量作为占位符的语句.这些是以后提供的值并使用.

编辑:您可以在MySQL网站上找到有关在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;
Run Code Online (Sandbox Code Playgroud)


Sha*_*oor -1

i=0;
for(i=0; i < 100; i++)
{
mysql_query(conn, "INSERT INTO MyTable VALUES ( '"+i+"', 'blue', 'pumpkin')"); 
}
Run Code Online (Sandbox Code Playgroud)

这应该有效