2024年1月27日发(作者:)
C连接MYSQL数据库的3种方法及示例
连接MYSQL数据库有多种方法,下面介绍其中三种常用的方法。
1.使用CAPI连接MYSQL数据库
CAPI是官方提供的一套用于连接和操作MYSQL数据库的函数库。使用该API,可以在C程序中直接连接MYSQL数据库,并执行各种以下是一个连接MYSQL数据库的示例:
```c
#include
int mai
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
conn = mysql_init(NULL);
if (conn == NULL)
fprintf(stderr, "mysql_init failedn");
return 1;
}
if (mysql_real_connect(conn, "localhost", "user", "password",
"database", 0, NULL, 0) == NULL)
SQL语句。
fprintf(stderr, "mysql_real_connect failed: %sn",
mysql_error(conn));
mysql_close(conn);
return 1;
}
if (mysql_query(conn, "SELECT * FROM table"))
fprintf(stderr, "mysql_query failed: %sn",
mysql_error(conn));
mysql_close(conn);
return 1;
}
res = mysql_use_result(conn);
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s %s %sn", row[0], row[1], row[2]);
}
mysql_free_result(res);
mysql_close(conn);
return 0;
```
上述代码首先初始化MYSQL对象,然后使用mysql_real_connect函数连接MYSQL数据库。其中,参数分别是MYSQL对象指针、主机名、用户名、密码、数据库名、端口号、UNIX套接字路径和客户端标志。连接成功后,可以使用mysql_query函数执行SQL语句,并通过mysql_use_result函数获取执行结果。
2.使用ODBC连接MYSQL数据库
ODBC是一套为不同数据库提供统一接口的API,用于连接和操作各种类型的数据库。使用ODBC连接MYSQL数据库,需要先安装MYSQLODBC驱动,并配置ODBC数据源。以下是一个通过ODBC连接MYSQL数据库的示例:
```c
#include
#include
#include
int mai
SQLHENV env;
SQLHDBC dbc;
SQLHSTMT stmt;
SQLRETURN ret;
ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
ret = SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)
SQL_OV_ODBC3, 0);
ret = SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);
ret = SQLConnect(dbc, (SQLCHAR*) "DSN", SQL_NTS, (SQLCHAR*)
"user", SQL_NTS, (SQLCHAR*) "password", SQL_NTS);
ret = SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt);
ret = SQLExecDirect(stmt, (SQLCHAR*) "SELECT * FROM table",
SQL_NTS);
if (ret == SQL_SUCCESS , ret == SQL_SUCCESS_WITH_INFO)
SQLCHAR col1[256], col2[256], col3[256];
SQLBindCol(stmt, 1, SQL_C_CHAR, col1, sizeof(col1), NULL);
SQLBindCol(stmt, 2, SQL_C_CHAR, col2, sizeof(col2), NULL);
SQLBindCol(stmt, 3, SQL_C_CHAR, col3, sizeof(col3), NULL);
while (SQLFetch(stmt) == SQL_SUCCESS)
printf("%s %s %sn", col1, col2, col3);
}
}
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
SQLDisconnect(dbc);
SQLFreeHandle(SQL_HANDLE_DBC, dbc);
SQLFreeHandle(SQL_HANDLE_ENV, env);
return 0;
```
上述代码使用了Windows下的ODBC API函数。首先,通过SQLAllocHandle函数分别分配环境句柄和连接句柄,然后使用SQLConnect函数连接MYSQL数据库。其中,第一个参数是连接句柄,第二个参数是数据源名称(DSN),第四个与第六个参数分别是用户名和密码。连接成功后,可以使用SQLExecDirect函数执行SQL语句,通过SQLBindCol和SQLFetch函数获取执行结果。
3.使用第三方库连接MYSQL数据库
除了以上两种方法,还可以使用第三方库来连接MYSQL数据库,如libmysqlclient和mysql-connector-c等。这些库提供了更简洁、易用的接口。以下是一个使用libmysqlclient库连接MYSQL数据库的示例:
```c
#include
int mai
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
conn = mysql_init(NULL);
if (conn == NULL)
fprintf(stderr, "mysql_init failedn");
return 1;
}
if (mysql_real_connect(conn, "localhost", "user", "password",
"database", 0, NULL, 0) == NULL)
fprintf(stderr, "mysql_real_connect failed: %sn",
mysql_error(conn));
mysql_close(conn);
return 1;
}
if (mysql_query(conn, "SELECT * FROM table"))
fprintf(stderr, "mysql_query failed: %sn",
mysql_error(conn));
mysql_close(conn);
return 1;
}
res = mysql_use_result(conn);
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s %s %sn", row[0], row[1], row[2]);
}
mysql_free_result(res);
mysql_close(conn);
return 0;
```
上述代码使用了libmysqlclient库提供的函数来连接和操作MYSQL数据库。与C API的示例代码类似,首先初始化MYSQL对象,然后使用mysql_real_connect函数连接MYSQL数据库。连接成功后,可以使用mysql_query函数执行SQL语句,并通过mysql_use_result函数获取执行结果。
总结:
连接MYSQL数据库的三种常用方法分别是使用CAPI、使用ODBC和使用第三方库。这些方法各有优劣,开发者可以根据具体需求选择适合自己的方法。无论使用哪种方法,都需要提供正确的连接信息,如主机名、用户名、密码和数据库名等。通过这些方法,可以在C程序中连接MYSQL数据库,并执行各种SQL操作。
本文发布于:2024-01-27 17:41:02,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063484621701.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |