C++ SQLserver 插入 Value为变量赋值 参数化
时间: 2024-03-02 17:53:13 浏览: 152
使用参数化查询是更安全的方式,可以避免 SQL 注入等安全问题。以下是一个示例代码,其中插入了一个名称和年龄值:
```cpp
#include <sql.h>
#include <sqlext.h>
// 假设你已经建立了一个连接句柄 hdbc 和一个语句句柄 hstmt
char* name = "John";
int age = 30;
SQLCHAR* query = (SQLCHAR*)"INSERT INTO mytable (name, age) VALUES (?, ?)";
SQLPrepare(hstmt, query, SQL_NTS);
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 50, 0, name, 0, NULL);
SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &age, 0, NULL);
SQLExecute(hstmt);
```
在这个示例中,我们使用 SQLPrepare 函数来准备一个参数化查询,其中的 ? 表示占位符。然后,我们使用 SQLBindParameter 函数来将变量 name 和 age 绑定到查询中的占位符上,最后使用 SQLExecute 函数来执行查询。这样可以避免 SQL 注入等安全问题,是更加安全的方式。
相关问题
C++ SQLserver 插入 Value为变量赋值
如果你想在 C++ 中向 SQL Server 插入变量值,你可以使用参数化查询来实现。以下是一个示例代码,其中插入了一个名称和年龄值:
```cpp
#include <sql.h>
#include <sqlext.h>
// 假设你已经建立了一个连接句柄 hdbc 和一个语句句柄 hstmt
char* name = "John";
int age = 30;
SQLCHAR* query = (SQLCHAR*)"INSERT INTO mytable (name, age) VALUES (?, ?)";
SQLPrepare(hstmt, query, SQL_NTS);
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 50, 0, name, 0, NULL);
SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &age, 0, NULL);
SQLExecute(hstmt);
```
在这个示例中,我们使用了 SQLPrepare 函数来准备一个参数化查询,其中的 ? 表示占位符。然后,我们使用 SQLBindParameter 函数来将变量 name 和 age 绑定到查询中的占位符上,最后使用 SQLExecute 函数来执行查询。
阅读全文