第一步:确定codeblocks版本位数与mysql相同,下图是我的codeblocks版本

在这里插入图片描述
打开mysql命令窗口(也就是在命令行下登陆mysql后),键入如下命令

show variables like '%version_%';

显示结果如下图:显示是64位的

在这里插入图片描述

第二步:配置codeblocks编译器

下面是我的汉化版本codeblocks的截图

step1:

第一步

step2:

第二步

step3:

第三步

step4:

第四步

点击确定完成配置!

第三步:代码测试

#include <stdio.h>
#include <mysql.h>
/*自定义配置*/
//服务ip
#define MY_MYSQL_HOST "***.***.***.***"
//服务端口号
#define MY_MYSQL_PORT 3306
//mysql用户名
#define MY_MYSQL_USER "****"
//mysql密码
#define MY_MYSQL_PASS "****"
//连接的数据库
#define MY_MYSQL_DATABASE "****"
/*********/
MYSQL *db_connect()
{
    MYSQL mysql;
    mysql_init(&mysql);

    char host[]=MY_MYSQL_HOST;	//主机,默认localhost
    char user[]=MY_MYSQL_USER;	//数据库用户名
    char passwd[]=MY_MYSQL_PASS;	//数据库密码
    char db[]=MY_MYSQL_DATABASE;	//数据库名
    unsigned int port=MY_MYSQL_PORT;
    char *unixSocket=NULL;
    unsigned int clientFlag=CLIENT_FOUND_ROWS;
    return mysql_real_connect(&mysql,host,user,passwd,db,port,unixSocket,clientFlag);
}
/*
返回值0,查询条目为0或执行语句成功
返回值为-1,语句执行失败
返回值为-2,连接数据库失败
返回值>0,查询条目个数
*/
int db_execute_sql(char *sql)
{
    MYSQL_RES *res_ptr;//指向查询结果的指针
    MYSQL_FIELD *field;//指向字段结构体的指针
    MYSQL_ROW result_row;//按行返回的select结果,即一行记录
    int rowCnt,colCnt;
    int res;//执行sql语句后的返回标志
    int i,j;
    int result;
    MYSQL *mysql_p=db_connect();
    MYSQL mysql;
    if(mysql_p!=NULL){//连接成功
        mysql=*mysql_p;
        //printf("数据库连接成功\n");
        mysql_query(&mysql,"set names utf8");//设置查询编码为utf8
        res=mysql_query(&mysql,sql);//执行语句后,成功为0,失败为1
        //printf("res:%d\n",res);
        if(res){
            printf("查询语句执行失败\n");
            mysql_close(&mysql);
            result = -1;
        }else{
            res_ptr=mysql_store_result(&mysql);
            if(res_ptr){//如果记录集不为空,就把每条记录按行输出
                rowCnt=mysql_num_rows(res_ptr);//取的结果记录集的行数和字段数
                colCnt=mysql_num_fields(res_ptr);
                printf("查询到%d行\n",rowCnt);

                for(i=0;field=mysql_fetch_field(res_ptr);i++){//输出记录的字段名
                    printf("%20s",field->name);
                }
                printf("\n");
                for(i=1;i<rowCnt+1;i++){//按行输出每条记录
                    result_row=mysql_fetch_row(res_ptr);
                    for(j=0;j<colCnt;j++){
                        printf("%20s",result_row[j]);
                    }
                    printf("\n");
                }
                result=rowCnt;
            }
            else
            {
                result=0;
            }
        }
        mysql_close(&mysql);//关闭数据库连接
    }else{
        result = -2;
        printf("数据库连接失败\n");
    }
    return result;
}
int main()
{
    char *sql;
    sql="select * from record";
    printf("%d",db_execute_sql(sql));
    return 0;
}


Logo

一站式 AI 云服务平台

更多推荐