C连接MYSQL数据库的3种方法及示例

阅读: 评论:0

2024年1月27日发(作者:)

C连接MYSQL数据库的3种方法及示例

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操作。

C连接MYSQL数据库的3种方法及示例

本文发布于:2024-01-27 17:41:02,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063484621701.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:连接   数据库   使用   函数   方法   执行   提供
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23