〃忝書γě渎ぐ 发表于 2014-11-26 02:30:28

vs2012,c++连接mysql

本帖最后由 〃忝書γě渎ぐ 于 2014-12-12 00:41 编辑

环境设置:
安装完mysql
vs中 vc++目录中 包含目录 D:\DevSoft\MySQL\MySQL Server 5.5\include   这个文件夹
vc++目录 中 引用目录 D:\DevSoft\MySQL\MySQL Server 5.5\lib 这个文件夹。

记得把 mysql 安装目录中的include目录下的libmysql.lib   复制到工程文件夹下。
如果是32位的mysql 可以直接连。 如果是 64,需要 配置 vs x64平台,在配置管理其中,然后连。

#include "stdafx.h"
#include <Windows.h>
#include <string.h>
#include <mysql.h>
#include <iostream>
using namespace std;
int main()
{
    const char user[] = "数据库账号";         //username
    const char pswd[] = "数据库密码";         //password
    const char host[] = "localhost";    //or"127.0.0.1"
    const char table[] = "数据库空间";      //database
    unsigned int port = 3306;         //server port      
    MYSQL myCont;
    MYSQL_RES *result;
    MYSQL_ROW sql_row;
    MYSQL_FIELD *fd;
    char column;
    int res;
    mysql_init(&myCont);
    if(mysql_real_connect(&myCont,host,user,pswd,table,port,NULL,0))
    {
      cout<<"connect succeed!"<<endl;
      mysql_query(&myCont, "SET NAMES GBK"); //设置编码格式,否则在cmd下无法显示中文
      res=mysql_query(&myCont,"select * from student");//查询
      if(!res)
      {
            result=mysql_store_result(&myCont);//保存查询到的数据到result
            if(result)
            {
                int i,j;
                cout<<"number of result: "<<(unsigned long)mysql_num_rows(result)<<endl;
                for(i=0;fd=mysql_fetch_field(result);i++)//获取列名
                {
                  strcpy_s(column,fd->name);
                }
                j=mysql_num_fields(result);
                for(i=0;i<j;i++)
                {
                  printf("%s\t",column);
                }
                printf("\n");
                while(sql_row=mysql_fetch_row(result))//获取具体的数据
                {
                  for(i=0;i<j;i++)
                  {
                        printf("%s\n",sql_row);
                  }
                  printf("\n");
                }
            }
      }
      else
      {
            cout<<"query sql failed!"<<endl;
      }
    }
    else
    {
      cout<<"connect failed!"<<endl;
    }
    if(result!=NULL) mysql_free_result(result);//释放结果资源
    mysql_close(&myCont);//断开连接
system("pause");
    return 0;
}

ilboyvm 发表于 2014-11-27 10:49:46

新版MySQL开始收费了,唉,不爽
页: [1]
查看完整版本: vs2012,c++连接mysql