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 中 所有的表:
这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章