devc++下使用c语言访问mysql数据库

时间:2022-12-16 09:13:24

一、环境配置

1、windows7系统

2、mysql

3、devc++ 5.3.0.3

4、安装MySQL.DevPak,下载地址:

http://downloads.sourceforge.net/dev-cpp/MySQL.DevPak

下载后双击安装, 安装完成后“工具->packagemanager”下会出现“MySQL”

单击“工具->编译选项->编译器->在连接器命令行中加入以下命令”,在文本框中添加-lmysql。

5、在devc++中添加mysql的lib和include文件。网上的方法是:“工具->编译选项->编译器->目录”中添加,但是我怎么添加都添加不进去。然后就用了一个最笨的方法,把mysql下面的lib和include文件夹直接复制到devc++安装目录下面的lib和include中,貌似也可行= =

 

二、下面开始写代码

#include <windows.h> 
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
#include <cstring>
#include <iostream>

using namespace std;

int main()

{

MYSQL mysql; //mysql连接

MYSQL_RES *res; //这个结构代表返回行的一个查询结果集

MYSQL_ROW row; //一个行数据的类型安全(type-safe)的表示

//char *query; //查询语句
string query;

int t,r;

mysql_init(&mysql);

//主机名,账号,密码,数据库名,端口号
if (!mysql_real_connect(&mysql,"localhost", "root", "xiaoquantou", "test",3306,NULL,0))

{

printf( "Error connecting to database%s\n",mysql_error(&mysql));

} else

printf("Connected...\n"); //连接上了

const char * q1 = "SET CHARACTER SET GBK"; //设置编码

t=mysql_real_query(&mysql,q1,(unsigned int)strlen(q1));

if(t)

{

printf("编码设置失败\n");

}

//const char* q2 =" select * from goods";
query = "select * from goods";

t=mysql_real_query(&mysql,query.c_str(),(unsigned int)strlen(query.c_str()));
//c_str()函数是c++中将string转化为const char*的函数
if(t)

{

printf("执行查询时出现异常: %s",mysql_error(&mysql));

}else

printf("[%s] 构建成功 \n",query.c_str());

res=mysql_store_result(&mysql);

while(row=mysql_fetch_row(res))

{

for(t=0;t <mysql_num_fields(res);t++)

{

printf("%s: ",row[t]);

}

printf("\n");

}

mysql_free_result(res);

//sleep(1);
scanf("%d",&t);

return 0;

}