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

时间:2022-03-12 09:14:02

一、环境配置

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; 

}