在 C 语言中插入数据到数据库341


在 C 语言中,我们可以使用 MySQL 客户端库来操作数据库,其中包括插入数据的函数。以下是一个使用 MySQL 客户端库插入数据的示例代码:```c
#include
#include
#include
int main() {
// 初始化 MySQL 客户端库
MYSQL *con = mysql_init(NULL);
// 尝试连接到数据库
if (mysql_real_connect(con, "localhost", "root", "password", "database_name", 0, NULL, 0) == NULL) {
fprintf(stderr, "无法连接到数据库:%s", mysql_error(con));
mysql_close(con);
return EXIT_FAILURE;
}
// 要插入的记录
char *name = "John Doe";
int age = 30;
// 准备插入语句
char query[256];
sprintf(query, "INSERT INTO users (name, age) VALUES ('%s', %d)", name, age);
// 执行插入语句
if (mysql_query(con, query)) {
fprintf(stderr, "插入数据失败:%s", mysql_error(con));
mysql_close(con);
return EXIT_FAILURE;
}
// 获取受影响的行数
int rows_affected = mysql_affected_rows(con);
// 打印受影响的行数
printf("插入 %d 行数据", rows_affected);
// 关闭数据库连接
mysql_close(con);
return EXIT_SUCCESS;
}
```

在上面的代码中,我们首先初始化 MySQL 客户端库,然后连接到数据库。接下来,我们准备插入语句,其中包含要插入的记录的值。然后,我们执行插入语句并获取受影响的行数。最后,我们关闭数据库连接。

除了直接使用 MySQL 客户端库,我们还可以使用 ODBC(开放数据库连接)接口来操作数据库。ODBC 是一组标准,允许不同的编程语言与不同的数据库系统进行交互。以下是一个使用 ODBC 插入数据的示例代码:```c
#include
#include
#include
#include
int main() {
// 初始化 ODBC 环境
SQLHENV env = SQL_NULL_HENV;
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
// 初始化 ODBC 连接
SQLHDBC con = SQL_NULL_HDBC;
SQLAllocHandle(SQL_HANDLE_DBC, env, &con);
// 连接到数据库
SQLRETURN ret = SQLConnect(con, "DSN=MyDatabase", SQL_NTS, NULL, 0, NULL, 0);
if (ret != SQL_SUCCESS) {
fprintf(stderr, "无法连接到数据库:%s", SQLerrorMessage(con, SQL_NULL_HDBC, ret));
SQLFreeHandle(SQL_HANDLE_DBC, con);
SQLFreeHandle(SQL_HANDLE_ENV, env);
return EXIT_FAILURE;
}
// 要插入的记录
char *name = "John Doe";
int age = 30;
// 准备插入语句
SQLHSTMT stmt = SQL_NULL_HSTMT;
SQLAllocHandle(SQL_HANDLE_STMT, con, &stmt);
SQLPrepare(stmt, "INSERT INTO users (name, age) VALUES (?, ?)", SQL_NTS);
// 绑定参数
SQLBindParameter(stmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 0, 0, name, strlen(name), NULL);
SQLBindParameter(stmt, 2, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, &age, sizeof(age), NULL);
// 执行插入语句
ret = SQLExecute(stmt);
if (ret != SQL_SUCCESS) {
fprintf(stderr, "插入数据失败:%s", SQLerrorMessage(con, stmt, ret));
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
SQLFreeHandle(SQL_HANDLE_DBC, con);
SQLFreeHandle(SQL_HANDLE_ENV, env);
return EXIT_FAILURE;
}
// 获取受影响的行数
SQLULEN rows_affected;
SQLRowCount(stmt, &rows_affected);
// 打印受影响的行数
printf("插入 %d 行数据", rows_affected);
// 关闭语句句柄
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
// 关闭连接句柄
SQLDisconnect(con);
// 关闭环境句柄
SQLFreeHandle(SQL_HANDLE_DBC, con);
SQLFreeHandle(SQL_HANDLE_ENV, env);
return EXIT_SUCCESS;
}
```

与使用 MySQL 客户端库类似,我们首先初始化 ODBC 环境和连接,然后连接到数据库。接下来,我们准备插入语句并绑定参数。然后,我们执行插入语句并获取受影响的行数。最后,我们关闭语句句柄、连接句柄和环境句柄。

使用 ODBC 的优点是它可以与不同的数据库系统一起使用。然而,与直接使用 MySQL 客户端库相比,它可能需要更多的代码。

2025-02-16


上一篇:C 语言中主函数的个数限制

下一篇:C 语言中输出除法结果