少女祈祷中 . . .

c++ 操作mysql数据库


mysql5 安装

管理员命令行进/bin目录,输入mysqld.exe --install&&net start mysql

修改密码

首次修改输入mysqladmin -u root password "new_password"
修改旧密码输入首次修改输入mysqladmin -u root -p password “new_password”`,然后输入原有旧密码。

IDE设置

首先需要在include目录中加上mysql5\include
lib目录中加上mysql5\lib\opt
(可选)在链接器的链接的lib文件中,添加libmysql.lib
如果你找不到怎么添加libmysql.lib,可以跳过这一步

使用C++代码链接并操作数据库

需要的头文件

首先需要包含以下头文件

#include <winsock2.h>
#include <mysql.h>
#pragma comment(lib,"libmysql.lib") //如果你在IDE中设置了加入libmysql.lib,就可以不需要这一行,但是你加上去也没事

链接数据库

MYSQL mysqlconn;
mysql_init(&mysqlconn);
char * host="127.0.0.1";        //服务器地址
int port=3306;                  //端口
char * username="root";         //用户名
char * password="1234567890";   //密码
char * dbname="virus";          //数据库名

(mysql_real_connect(&mysqlconn,host,username,password,dbname,port,NULL,CLIENT_FOUND_ROWS) != NULL)?cout<<"success"<<endl:cout<<"fail"<<endl;

mysql_query(&mysqlconn,"set names gbk");    //链接完之后设置编码为GBK

读取数据库数据

void getdata()
&#123;
    MYSQL_RES *     mysql_res;
    MYSQL_FIELD *   mysql_field;
    MYSQL_ROW       mysql_row;
    char * sql="select * from virus_data where city_deadCount>50";

    if(mysql_query(&mysqlconn,sql)==0)
    &#123;
        cout<<"get data success"<<endl;
        mysql_res=mysql_store_result(&mysqlconn);
        if(mysql_res)
        &#123;
            int fiendcount=mysql_num_fields(mysql_res);
            int rowcount=mysql_num_rows(mysql_res);
            cout<<fiendcount<<endl;
            cout<<rowcount<<endl;

            for(int i=0;i<fiendcount;i++)
            &#123;
                mysql_field=mysql_fetch_field(mysql_res);
                cout<<mysql_field->name<<" ";
            &#125;
            cout<<endl;

            for(int i=0;i<rowcount;i++)
            &#123;
                mysql_row=mysql_fetch_row(mysql_res);
                for(int ja=0;ja<fiendcount;ja++)
                &#123;
                    cout<<mysql_row[ja]<<" ";
                &#125;
                cout<<endl;
            &#125;
        &#125;
    &#125;else&#123;
        cout<<"get data fail"<<endl;
    &#125;
&#125;

修改数据库数据

string sql;
sqla = "update item set qty=" + tmp + " where itemid='" + itemid + "'";               //修改
sqlb = "delete from user where userid='" + userid + "'";                            //删除
sqlc = "insert into datemax(date,value) values('" + date + "','" + "1" + "');";     //插入
mysql_query(&mysqlconn, sql);

项目实例

Github


文章作者: Tokisaki Galaxy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Tokisaki Galaxy !
评论
 上一篇
PROJECT-404 PROJECT-404
测试信息,请忽略这一部分 这是基于 hexo-admonition 插件渲染的一条提示信息。类型为 note,并设置了自定义标题。 提示内容开头留 4 个空格,可以有多行,最后用空行结束此标记。 链接: https://pan.baid
2020-09-20 Tokisaki Galaxy
下一篇 
vector 用法 vector 用法
c++中vector用法
2020-09-04
  目录