利用C语言操作SQL和MySQL(c sql和mysql)

利用C语言操作SQL和MySQL

SQL(Structured Query Language)是一种用于访问和处理关系型数据库管理系统(RDBMS)的编程语言。MySQL是一种流行的开源数据库管理系统,广泛用于Web应用程序和服务器端的开发中。在本文中,我们将介绍如何使用C语言编写代码来操作SQL和MySQL数据库。

访问SQL数据库

在C语言中,可以使用ODBC(Open Database Connectivity)API来访问各种数据库管理系统,包括SQL Server、Oracle、Access和MySQL等。下面是使用ODBC API连接到SQL Server数据库的一些示例代码:

“`c

#include

#include

#include

SQLHANDLE sqlenv = NULL;

SQLHANDLE sqlconn = NULL;

SQLHANDLE sqlstmt = NULL;

int mn(int argc, char *argv[]) {

SQLCHAR *dsn = (SQLCHAR *)”DSN_Example”;

SQLCHAR *uid = (SQLCHAR *)”username”;

SQLCHAR *pwd = (SQLCHAR *)”password”;

SQLCHAR *query = (SQLCHAR *)”SELECT * FROM ExampleTable”;

SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlenv);

SQLSetEnvAttr(sqlenv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);

SQLAllocHandle(SQL_HANDLE_DBC, sqlenv, &sqlconn);

SQLConnect(sqlconn, dsn, SQL_NTS, uid, SQL_NTS, pwd, SQL_NTS);

SQLAllocHandle(SQL_HANDLE_STMT, sqlconn, &sqlstmt);

SQLExecDirect(sqlstmt, query, SQL_NTS);

while(SQLFetch(sqlstmt) == SQL_SUCCESS) {

int id;

char name[256];

int age;

SQLGetData(sqlstmt, 1, SQL_C_LONG, &id, sizeof(id), NULL);

SQLGetData(sqlstmt, 2, SQL_C_CHAR, name, sizeof(name), NULL);

SQLGetData(sqlstmt, 3, SQL_C_LONG, &age, sizeof(age), NULL);

printf(“ID: %d, Name: %s, Age: %d\n”, id, name, age);

}

SQLFreeHandle(SQL_HANDLE_STMT, sqlstmt);

SQLDisconnect(sqlconn);

SQLFreeHandle(SQL_HANDLE_DBC, sqlconn);

SQLFreeHandle(SQL_HANDLE_ENV, sqlenv);

return 0;

}


这些代码使用ODBC API建立连接、执行查询,并通过SQLFetch和SQLGetData函数获取查询结果集中的行和列。如果需要执行更新或删除操作,可以使用SQLExecDirect和SQLPrepare函数。

访问MySQL数据库

要在C语言中连接和操作MySQL数据库,可以使用MySQL C API,它提供了一组易于使用的函数和结构体,使您可以通过C程序访问MySQL数据库。下面是使用MySQL C API连接并从表中获取数据的示例代码:

```c
#include
#include
int mn() {
MYSQL *conn = mysql_init(NULL);
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "username";
char *password = "password";
char *database = "exampledb";
if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
return 1;
}
if (mysql_query(conn, "SELECT * FROM ExampleTable")) {
fprintf(stderr, "%s\n", mysql_error(conn));
return 1;
}
res = mysql_use_result(conn);

while ((row = mysql_fetch_row(res)) != NULL) {
int id = atoi(row[0]);
char *name = row[1];
int age = atoi(row[2]);
printf("ID: %d, Name: %s, Age: %d\n", id, name, age);
}
mysql_free_result(res);
mysql_close(conn);
return 0;
}

在这个示例中,我们使用mysql_init函数初始化MySQL连接对象,使用mysql_real_connect函数连接到数据库。然后,使用mysql_query函数执行查询语句,并使用mysql_use_result函数获取结果。使用mysql_fetch_row函数获得每一行的数据结果,并输出到控制台。

结论

在本文中,我们介绍了如何通过C语言访问SQL和MySQL数据库。使用ODBC API可以访问各种数据库管理系统,包括SQL Server、Access、Oracle和MySQL等;使用MySQL C API可以方便地访问MySQL数据库。在实际项目中,可以根据需要选择适合自己的方法来实现数据库操作。


数据运维技术 » 利用C语言操作SQL和MySQL(c sql和mysql)