如何用C语言在不使用mysql.h的情况下连接本地mysql
时间: 2023-06-10 09:08:46 浏览: 112
在不使用mysql.h的情况下连接本地mysql,可以使用libmysqlclient库来实现。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql/mysql.h>
int main()
{
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "password";
char *database = "test";
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
if (mysql_query(conn, "SELECT * FROM users")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
while ((row = mysql_fetch_row(res)) != NULL) {
printf("%s %s %s\n", row[0], row[1], row[2]);
}
mysql_free_result(res);
mysql_close(conn);
return 0;
}
```
在该示例代码中,我们首先使用`mysql_init()`函数初始化一个MYSQL对象。接着,我们使用`mysql_real_connect()`函数连接到本地mysql服务器。如果连接失败,我们使用`mysql_error()`输出错误信息并退出程序。如果连接成功,我们使用`mysql_query()`函数执行一个SELECT语句,然后使用`mysql_use_result()`函数获取结果集。最后,我们使用`mysql_fetch_row()`函数逐行获取结果,并输出到屏幕上。最后,我们使用`mysql_free_result()`函数释放结果集,使用`mysql_close()`函数关闭连接。
需要注意的是,使用libmysqlclient库需要在编译时链接该库。可以使用以下命令编译示例代码:
```
gcc -o test test.c -lmysqlclient
```
其中,`-lmysqlclient`选项用于链接libmysqlclient库。
阅读全文