VS2008与MySQL数据库操怎么样链接代码实例

来源:互联网 发布:人工智能机器人图片 编辑:程序博客网 时间:2024/05/16 08:11

由于课程大实验需要使用c++操作MySQL数据库,经过一番研究终于成功实现VS2008中与MySQL的连接。

环境设置:

安装完MySQL之后,将安装目录中的MySQL5\lib\debug\目录下的libmysql.lib文件拷到VS2008安装目录中的VC\lib\下,然后在 项目-选项-c/c++-常规 中的附加包含目录以及 链接器-常规 中的附加库目录中加入“c:\MySQL\include\”,并且在 链接器-输入 中的附加依赖项内添加“libmysql.lib,这样即可使编译器找到mysql.h头文件,并可在程序中使用c语言的mysql API来操作数据库。(如果MySQL安装目录中无include目录,可到MySQL官网下载并安装MySQL connector for C,并修改include目录路径)

代码示例: 

#include <Windows.h>
#include 
<stdio.h>
#include 
<stdlib.h>
#include 
<string.h>
#include 
<mysql.h> 
#include 
<iostream>
using namespace std;

int main()
{
    
const char user[] = "root";         //username
    const char pswd[] = "root";         //password
    const char host[] = "localhost";    //or"127.0.0.1"
    const char table[] = "peop1";       //database
    unsigned int port = 3306;           //server port        
    MYSQL myCont;
    MYSQL_RES 
*result;
    MYSQL_ROW sql_row;
    MYSQL_FIELD 
*fd;
    
char column[32][32];
    
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 pre_admin");//查询http://www.125pc.com/dnrm/
        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(column[i],fd
->name);
                }
                j
=mysql_num_fields(result);
                
for(i=0;i<j;i++)
                {
                    printf(
"%s\t",column[i]);
                }
                printf(
"\n");
                
while(sql_row=mysql_fetch_row(result))//获取具体的数据
                {
                    
for(i=0;i<j;i++)
                    {
                        printf(
"%s\n",sql_row[i]);
                    }
                    printf(
"\n");
                }
            }
        }
        
else
        {
            cout
<<"query sql failed!"<<endl;
        }
    }
    
else
    {
        cout
<<"connect failed!"<<endl;
    }
    
if(result!=NULL) mysql_free_result(result);//释放结果资源
    mysql_close(&myCont);//断开连接
    return 0;
}


使用总结: 

1.#include<mysql.h>之前一定要加上#include<windows.h>否则会产生如下错误:

1>d:\my documents\visual studio 2008\projects\testmysql\testmysql\mysql\mysql_com.h(191) : error C2146: 语法错误 : 缺少“;”(在标识符“fd”的前面)
1>d:\my documents\visual studio 2008\projects\testmysql\testmysql\mysql\mysql_com.h(191) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\my documents\visual studio 2008\projects\testmysql\testmysql\mysql\mysql_com.h(191) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\my documents\visual studio 2008\projects\testmysql\testmysql\mysql\mysql_com.h(366) : error C2065: “SOCKET”: 未声明的标识符
1>d:\my documents\visual studio 2008\projects\testmysql\testmysql\mysql\mysql_com.h(366) : error C2146: 语法错误 : 缺少“)”(在标识符“s”的前面)
1>d:\my documents\visual studio 2008\projects\testmysql\testmysql\mysql\mysql_com.h(367) : error C2059: 语法错误 : “)” 


2.总结一下常用MySQL命令:


测试环境:MySQL 5.1.35
安装MySQL之后,打开MySQL Command Line Client,输入root密码,即可操作数据库

//查看MySQL版本
mysql> select version();

//显示所有数据库
mysql> show databases;

//使用数据库
mysql> use database_name;

//显示所有数据表
mysql> show tables;

//显示数据表结构
mysql> describe table_name;

//创建数据库
mysql> create database database_name;

//删除数据库
mysql> drop database database_name;

//创建数据表
mysql> use database_name;
mysql
> create table table_name (字段名 VARCHAR(20), 字段名 CHAR(1));

//删除数据表
mysql> drop table table_name;

//查询记录
mysql> select * from table_name;

//导入.sql文件
mysql> use database_name;
mysql
> source c:/mysql.sql

//修改root密码
mysql> UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root';

//退出
mysql> quit
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新买的号码被别人注册过微信怎么办 买了个号码卡已经被注册微信怎么办 我怎么办微信把拉黑一次删了人太多 国家大剧院的票丢了能补票吗怎么办 打完狂犬疫苗后我抽了很多烟怎么办 我老婆接受了我的小三现在该怎么办 今日头条我发的文章浏览量少怎么办 如果荷兰猪母的和公的打架该怎么办 我买的商铺地址被别人注册了怎么办 搜狗阅读购买搜豆没有到账该怎么办 捡的ⅴⅰⅴo指纹屏锁解不开怎么办 在百度上订的演出票不配送了怎么办 我在租车公司租的车撞报废了怎么办 交给学校查重的论文发错了怎么办啊 顺丰快递员把我的快递弄丢了怎么办 苹果6换了电池触屏不好用了怎么办 律协以律所被投诉不批准实习怎么办 提车时间没有写4s不给车怎么办 全店的人都知道我坐过牢怎么办 找了一个长得帅玩心重的老公怎么办 汽车左后轮油封漏油换了也漏怎么办 星露谷物语不小心把任务删了怎么办 饿了么商家版账号和密码忘了怎么办 红米4x手机里的照片全删了怎么办 微信表情包里编辑软文的数字怎么办 在转转上卖东西下单了想取消怎么办 丈夫的前儿子偷了我的钱我该怎么办 从日本寄的邮包被海关扣下了怎么办 卖家要求退货寄过去的货坏了怎么办 寄快递发货单丢了货发出去了怎么办 酷派手机电源键坏了开不了机怎么办 红米4a进水后开机就黑屏了怎么办 红米1s进水后开机了黑屏了怎么办 魅族手机已锁定魅族账号忘了怎么办 魅族5糸统升级后开不了机了怎么办 如果别人用电脑登了你的微信怎么办 消逝的光芒买错了买的普通版怎么办 在人人车卖了个车买家不过户怎么办 应用锁密码和密保问题都忘了怎么办 不小心在微信公众号发了消息怎么办 微信漂流瓶不能用了被投诉了怎么办