Codeblocks连接MySQL数据库,mysql,c语言,codeblocks,windows
第一步:确定codeblocks版本位数与mysql相同,下图是我的codeblocks版本打开mysql命令窗口(也就是在命令行下登陆mysql后),键入如下命令show variables like '%version_%';显示结果如下图:显示是64位的第二步:配置codeblocks编译器下面是我的汉化版本codeblocks的截图step1:step2:step3:step4:点击确定完
·
第一步:确定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;
}
更多推荐



所有评论(0)