要从MySQL数据库中获取表数据,可以使用C语言结合MySQL的C API(客户端库)来实现,以下是一个简单的示例,展示了如何使用C语言和MySQL C API从MySQL数据库中获取表数据。
(图片来源网络,侵删)
1、确保已经安装了MySQL服务器,并创建了一个名为testdb
的数据库和一个名为testtable
的表,表结构如下:
CREATE TABLE testtable ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age INT );
2、安装MySQL C API客户端库,在Ubuntu系统上,可以使用以下命令安装:
sudo aptget install libmysqlclientdev
3、创建一个名为mysql_example.c
的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 = "your_password"; // 请替换为你的MySQL root密码 char *database = "testdb"; char query[1024]; // 初始化MySQL连接 conn = mysql_init(NULL); if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s ", mysql_error(conn)); exit(1); } // 构建查询语句 snprintf(query, sizeof(query), "SELECT * FROM testtable"); // 执行查询 if (mysql_query(conn, query)) { fprintf(stderr, "%s ", mysql_error(conn)); exit(1); } // 获取查询结果集 res = mysql_use_result(conn); // 遍历结果集并打印每一行数据 printf("IDtNametAge "); while ((row = mysql_fetch_row(res)) != NULL) { printf("%st%st%s ", row[0], row[1], row[2]); } // 释放结果集和连接资源 mysql_free_result(res); mysql_close(conn); return 0; }
4、使用以下命令编译mysql_example.c
文件:
gcc o mysql_example mysql_example.c lmysqlclient lpthread lz lm ldl DWITH_SSL=withoutWERROR DENABLED_LOCAL_INFILE=1 DWITH_WSREP=OFF DWITH_EMBEDDED_SERVER=OFF DENABLE_DOWNLOADS=ON DENABLE_STATIC_MYSQLCCONN=OFF DENABLED_DEBUG_SYNC=OFF DENABLED_DEBUG_INFO=OFF DENABLED_DEBUG_ERROR=OFF DENABLED_DEBUG_TRACE=OFF DENABLED_DEBUG_COMMAND=OFF DENABLED_DEBUG_STATISTICS=OFF DENABLED_DEBUG_SYNC_FUTURE=OFF DENABLED_DEBUG_PROFILING=OFF DENABLED_DEBUG_LOCKING=OFF DENABLED_DEBUG_TRANSACTIONS=OFF DENABLED_DEBUG_INNODB=OFF DENABLED_DEBUG_BINLOG=OFF DENABLED_DEBUG_REPLICATION=OFF DENABLED_DEBUG_EVENTS=OFF DENABLED_DEBUG_CONNECTIVITY=OFF DENABLED_DEBUG_STATEMENTS=OFF DENABLED_DEBUG_ALLOCATION=OFF DWITHOUT_BOOST=ON I/usr/include/mysql L/usr/lib/x86_64linuxgnu lmysqlclient lpthread lz lm ldl lssl lcrypto /usr/lib/x86_64linuxgnu/libcrypto.a /usr/lib/x86_64linuxgnu/libssl.a /usr/lib/x86_64linuxgnu/libcrypto.so /usr/lib/x86_64linuxgnu/libssl.so /usr/lib/x86_64linuxgnu/libcrypto.so.1.0.0 /usr/lib/x86_64linuxgnu/libssl.so.1.0.0 /usr/lib/x86_64linuxgnu/libcrypto.so.1.0 /usr/lib/x86_64linuxgnu/libssl.so.1.0 /usr/lib/x86_64linuxgnu/libz.so /usr/lib/x86_64linuxgnu/liblzma.so /usr/lib/x86_64linuxgnu/libz.so.1 /usr/lib/x86_64linuxgnu/liblzma.so.5 /usr/lib/x86_64linuxgnu/libpthread.so /usr/lib/x86_64linuxgnu/libdl.so /usr/local/lib/libmysqlclient.a /usr/local/lib/libmysqlclient.la /usr/local/lib/libmysqlclient.so /usr/local/lib/libmysqlclient.so.18 /usr/local/lib/libmysqlclient.lai /usr/local/lib/pkgconfig/mysqlclient.pc lssl lcrypto /usr/lib/x86_64linuxgnu/libcrypto.a /usr/lib/x86_64linuxgnu/libssl.a /usr/lib/x86_64linuxgnu/libcrypto.so /usr/lib/x86_64linuxgnu/libssl.so /usr/lib/x86_64linuxgnu/libcrypto.so.1.0.0 /usr/lib/x86_64linuxgnu/libssl.so.1.0.0 /usr/lib/x86_64linuxgnu/libcrypto.so.1.0 /usr/lib/x86_64linuxgnu/libssl.so.1.0 /usr/lib/x86_64linuxgnu/libz.so /usr/lib
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/507283.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复