C语言,现在有两段数组数据username和password和一个数值n。现在将这三段数据插入MySQL数组,并返回插入结果
时间: 2024-12-15 07:18:40 浏览: 6
在C语言中,直接将整个数组一次性插入MySQL数据库不是一个常见的做法,因为MySQL支持单条记录插入,而不是数组。不过,如果你的数据是一对一对应的关系,你可以创建一个临时结构体或动态数组来存储用户名、密码和对应的ID或计数,然后逐条插入。
首先,假设你有一个结构体`User`:
```c
typedef struct User {
char username[50];
char password[50];
int n; // 或者其他标识符,比如用户编号
} User;
```
接着,可以将数据插入数据库:
```c
// 假设数组users已经初始化
size_t num_users = sizeof(users) / sizeof(User);
MYSQL *conn = ...; // 连接数据库
MYSQL_RES *result = NULL;
MYSQL_ROW row;
// 执行批量插入,这里仅作示例,实际可能需要处理错误
for (size_t i = 0; i < num_users; i++) {
User user = users[i];
const char *sql = "INSERT INTO users (username, password, n) VALUES (?, ?, ?)";
MYSQL_STMT *stmt;
if (mysql_stmt_init(conn)) {
// 错误处理
}
if (!mysql_stmt_prepare(stmt, sql, strlen(sql))) {
// 错误处理
}
if (!mysql_stmt_bind_param(stmt, "sss", user.username, user.password, (long long)user.n)) {
// 错误处理
}
int inserted = mysql_stmt_execute(stmt);
if (inserted != 1) {
// 没有成功插入,处理错误
}
mysql_stmt_reset(stmt); // 为了下一次循环
}
// 获取插入影响行数作为结果
result = mysql_store_result(conn);
if (result) {
affected_rows = mysql_num_rows(result);
printf("插入了%d行。\n", affected_rows);
mysql_free_result(result); // 清理结果集
}
mysql_close(conn); // 关闭连接
```
阅读全文