使用C语言写一个函数能够连接数据库
时间: 2024-12-20 08:16:12 浏览: 2
在C语言中,直接操作数据库通常需要使用专门的数据库API,比如MySQL C API、ODBC(Open Database Connectivity)或者SQLite等。下面是一个简单的例子,展示如何使用SQLite库来连接数据库。首先,你需要安装SQLite,并包含相关的头文件。
```c
#include <stdio.h>
#include <sqlite3.h>
// 函数声明
int create_connection(sqlite3 **db);
void close_connection(sqlite3 *db);
// SQLite回调函数
static int callback(void *data, int argc, char **argv, char **azColName) {
for (int i = 0; i < argc; i++) {
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int main() {
sqlite3 *db;
if (create_connection(&db)) {
const char *sql = "SELECT * FROM your_table";
char *err_msg;
if (sqlite3_exec(db, sql, callback, NULL, &err_msg) != SQLITE_OK) {
fprintf(stderr, "Error executing SQL: %s\n", err_msg);
sqlite3_free(err_msg);
} else {
printf("Query executed successfully.\n");
}
close_connection(db);
} else {
printf("Failed to create database connection.\n");
}
return 0;
}
// 创建数据库连接
int create_connection(sqlite3 **db) {
*db = sqlite3_open("your_database.db", 0);
if (*db == NULL) {
fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(*db));
sqlite3_close(*db);
*db = NULL;
return 1;
}
return 0;
}
// 关闭数据库连接
void close_connection(sqlite3 *db) {
if (db) {
sqlite3_close(db);
}
}
```
在这个示例中,`create_connection`函数用于打开数据库,如果失败则返回错误。`callback`函数是查询结果的处理函数,它会在执行SQL查询时被调用。`main`函数中展示了创建连接并执行SQL查询的例子。
阅读全文