MySQL 数据库编程-连接数据库

在做程序开发时,总免不了要和数据库打交道,在这里分享一个连接 ,查询MySQL 数据库的小程序:

#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>

int main()
{
        char server[] = "localhost";
        char user[] = "root";
        char passwd[] = "root.123";
        char database[] = "mysql";

        MYSQL *conn = mysql_init(NULL);// 初始化数据库环境      
        if(!conn) {
                fprintf(stderr, "Failed to initialize mysql\n");
                exit(1);
        }   
        const unsigned int timeout = 7;
        if(mysql_options(conn, MYSQL_OPT_CONNECT_TIMEOUT, &timeout)) //设置连接选项,这里设置连接超时为7s
        {   
                fprintf(stderr, "%s\n", mysql_error(conn));
                exit(1);
        }   

        if(!mysql_real_connect(conn, server, user, passwd, database, 0, NULL, 0))// 连接数据库
        {   
                fprintf(stderr, "%s\n", mysql_error(conn));
                exit(1);
        }   

        if(mysql_query(conn, "show tables"))// 执行 SQL 命令,这里执行“show tables”即显示当前数据库下所有的表
        {   
                fprintf(stderr, "%s\n", mysql_error(conn));
                exit(1);
        }   

        MYSQL_RES *res = mysql_use_result(conn);// 获得 result set
        if(!res) {
                fprintf(stderr, "Error: %s\n", mysql_error(conn));
                exit(1);
        }   

        MYSQL_ROW row;
        printf("MYSQL tables in database <mysql>:\n");
        printf("*********************************\n");
        while((row=mysql_fetch_row(res))) { // 将结果输出到 stdout
                printf("%s\n", row[0]);
        }   
        printf("*********************************\n");
        mysql_free_result(res); // 清理用于存储 result set 的内存

        mysql_close(conn);//关闭数据库连接
        printf("Finish Loading|\n");
        return 0;
}

编译运行:

gcc -o test test.c -L/usr/local/mysql/lib -lmysqlclient

可以查看 mysql 中 所有的表:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值