将变量插入到 mysql 表中
Inserting a variable into a mysql table
我知道如何将非变量值插入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...
我想做的是能够将变量插入到表中,C++:
前任:
i=0;
for(i=0; i < 100; i++)
{
mysql_query(conn, "INSERT INTO MyTable VALUES ( i, 'FirstName', 'LastName')");
}
不必手动输入 100 行数据,我希望能够使用 for 循环,并递增一个变量来为我创建行。
有谁知道如何使用 C++将变量插入 mysql 数据库?
我不太熟悉语法来使其工作,但您想要的通用版本是预处理语句。您创建一个将变量作为占位符的语句。这些值稍后会提供并使用。
编辑:您可以在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;
你可以通过以下方式做到这一点
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 中指定该字段具有 int 、double 、float 等类型即可。
在执行查询之前,您需要先创建查询字符串。 将下面的 printf 替换为字符串类实例以创建一个。您可能还想将其放在字符串向量中。
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 读取循环中的字符或字符串。
这对我有用。
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <mysql_connection.h>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
sql::Driver *driver;
sql::Connection *con;
sql::ResultSet *res;
sql::Statement *stmt;
/* Create a connection */
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "admin", "password");
// db name
con->setSchema("db_name");
std::string lookup = "bob" ;
stmt = con->createStatement();
res = stmt->executeQuery("SELECT last_name FROM names_table WHERE first_name = '" + lookup + "'");
while (res->next()) {
std::cout << res->getString("last_name") << std::endl;
}
delete res;
delete stmt;
delete con;
i=0;
for(i=0; i < 100; i++)
{
mysql_query(conn, "INSERT INTO MyTable VALUES ( '"+i+"', 'blue', 'pumpkin')");
}
这应该有效
相关文章:
- 反向给定链表中的K节点
- 我们可以删除链表中静态内存中的节点吗
- C++,指针数组,指向双链表中的条目
- 链表中写入访问冲突的未知原因
- 为什么C中的通用链表中存储的数据已损坏
- 为什么C++对链表中的下一个节点使用指针,而像 C# 或 Java 这样的语言只使用类 Node 的名称?
- 如何在 sqlite3 中的表中添加整数列表
- 链表中的显示功能无法正常工作
- 链表中的 C++ 析构函数
- 编写一个函数来删除单链表中的节点(尾部除外),仅授予对该节点的访问权限
- 如何使用连接器 c++ 在 mySQL 表二进制(16) 字段中存储 c++ 字节数组?
- 插入MySQL DB中的表之后,错误消息
- 如何在C++ Web 服务中缓存 MySQL 表
- 将变量插入到 mysql 表中
- 如何在QT QSqlRelationalTableModel中与mysql表建立关系
- C++executeQuery()在显示表中的MySQL数据时出错
- C++:从win32应用程序中的MySQL表检索的数据
- 如何使用 C++将 csv 文件数据存储到 mysql 表中
- 只选择MySQL数据库/表中的更新/新行
- 使用c++在mysql数据库表中插入多个值有问题