C++ 插入数据库怎么用变量代替值
时间: 2023-08-13 11:02:29 浏览: 44
在 C++ 中使用变量代替值插入数据库,可以使用参数化查询的方式。参数化查询是一种将 SQL 语句中的实际值替换为参数的方法,可以防止 SQL 注入攻击,并且简化了代码逻辑。
下面是一个使用参数化查询插入数据的示例代码:
```c++
// 假设已经定义了变量 a, b, c, d, e,表示要插入的数据
CADOConn conn; // 建立数据库连接
std::wstring strConn = L"Provider=SQLOLEDB;Data Source=127.0.0.1;Initial Catalog=SQL_PLC;User Id=sa;Password=bme12345;";
if (!conn.Open(strConn)) {
std::cerr << "Failed to connect to database!" << std::endl;
return -1;
}
// 创建参数化查询语句
CADOCommand cmd;
cmd.Create(conn, L"INSERT INTO plcdata (出水压力,瞬时流量,总流量,当日运行次数,运行总次数) VALUES (?, ?, ?, ?, ?)");
// 给参数赋值
cmd.AddParameter(L"出水压力", adInteger, sizeof(int), adParamInput, a);
cmd.AddParameter(L"瞬时流量", adInteger, sizeof(int), adParamInput, b);
cmd.AddParameter(L"总流量", adInteger, sizeof(int), adParamInput, c);
cmd.AddParameter(L"当日运行次数", adInteger, sizeof(int), adParamInput, d);
cmd.AddParameter(L"运行总次数", adInteger, sizeof(int), adParamInput, e);
// 执行查询
cmd.Execute();
// 关闭连接
conn.Close();
```
在上面的代码中,我们首先创建了一个参数化查询语句,使用问号(`?`)代替实际的值。然后,通过调用 `CADOCommand::AddParameter()` 方法,给每个参数赋值。最后,调用 `CADOCommand::Execute()` 方法执行查询语句,将参数值插入到数据库中。
需要注意的是,参数名和参数值的类型需要与数据库表的字段类型一致,否则可能会导致数据插入失败。