linux下c++连接mysql数据库

Linux下编写C++程序连接mysql数据库编译时指定头、库 Linux下编写C++程序连接mysql数据库 编译时需要指定头文件路径、mysql库,有两种方式: 1. g++ main.cpp mysql_deal.cpp -I/usr/include/mysql -L/usr/bin/mysql -lmysqlclient 2. g++  $(mysql_config --cflags) main.cpp    mysql_deal.cpp 阅读详情

在Linux下,我们可以通过MySQL提供的C API连接数据库。
使用C API连接mysql数据库除了要安装mysql-client和mysql-server,还需要安装mysql的开发包mysql-devel。
我的系统是fedora,安装命令如下:sudo yum install mysql-devel
ubuntu下安装命令:sudo apt-get install libmysqld-dev
然后加上<mysql/mysql.h>头文件就可以使用了。
想要具体了解C API函数的可以参考官方文档:官方mysql C API函数说明

我们在这里只介绍一些常用到的函数,以及将它们用c++封装起来,方便使用。


常用函数:
函数说明
MYSQL *mysql_init(MYSQL *mysql)获取或初始化MYSQL结构
MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)连接到MySQL服务器。
int mysql_query(MYSQL *mysql, const char *stmt_str)执行指定为“以Null终结的字符串”的SQL查询。
MYSQL_RES *mysql_store_result(MYSQL *mysql)将查询的整个结果读取到客户端,分配一个 MYSQL_RES结构,并将结果放入此结构中
unsigned int mysql_field_count(MYSQL *mysql)返回上次执行语句的结果集的列数。
unsigned int mysql_num_fields(MYSQL_RES *result)返回结果集中的列数。
my_ulonglong mysql_num_rows(MYSQL_RES *result)返回结果集中的行数。
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)从结果集中获取下一行数据
void mysql_free_result(MYSQL_RES *result)释放结果集空间


相关数据结构:
  • MYSQL结构体
    此结构表示一个数据库连接的处理程序。它几乎用于所有MySQL功能。
  • MYSQL_RES结构体
    存储查询结果数据。
  • MYSQL_ROW结构体
    存储一行数据的结构。


相关函数的介绍:

1.mysql_init()
分配或初始化MYSQL适合的对象 mysql_real_connect()。如果 mysql是NULL指针,则该函数分配,初始化并返回一个新对象。否则,对象被初始化并返回对象的地址。如果 mysql_init()分配一个新的对象,当mysql_close()被调用来关闭该连接时它被释放 。如果没有足够的内存分配一个新对象,则返回NULL。
2. mysql_query()
执行指定为“以Null终结的字符串”的SQL查询。查询成功返回0,失败返回非0值。
3.mysql_field_count()
返回连接上最近查询的列数。
这个函数的正常使用是 mysql_store_result()返回 NULL(因此你没有结果集指针)。在这种情况下,您可以调用 mysql_field_count()确定是否 mysql_store_result()应该产生非空结果。这使得客户端程序能够在不知道查询是SELECT(或 类似SELECT))语句的情况下采取适当的操作。此处显示的示例说明了如何完成此操作。如果不理解的话,看完后面的代码示例就理解了。


基本步骤就是:
  • 使用mysql_init()初始化连接
  • 使用mysql_real_connect()建立一个到mysql数据库的连接
  • 使用mysql_query()执行查询语句
  • result = mysql_store_result(mysql)获取结果集
  • mysql_num_fields(result)获取查询的列数,mysql_num_rows(result)获取结果集的行数
  • 通过mysql_fetch_row(result)不断获取下一行,然后循环输出
  • 释放结果集所占内存mysql_free_result(result)
  • mysql_close(conn)关闭连接

为了使用方便,我用c++进行了简单的封装:MyDB.h和MyDB.CPP

MyDB.h

/*************************************************************************
    > File Name: mydb.h
    > Author:fengxin 
    > Mail:903087053@qq.com 
    > Created Time: 2017年07月21日 星期五 15时17分17秒
 ************************************************************************/

#ifndef _MYDB_H
#define _MYDB_H
#include<iostream>
#include<string>
#include<mysql/mysql.h>
using namespace std;

class MyDB
{
    public:
    MyDB();
    ~MyDB();
    bool initDB(string host,string user,string pwd,string db_name); //连接mysql
    bool exeSQL(string sql);   //执行sql语句
    private:
    MYSQL *mysql;          //连接mysql句柄指针
    MYSQL_RES *result;    //指向查询结果的指针
    MYSQL_ROW row;       //按行返回的查询信息
};


#endif

MyDB.cpp

/*************************************************************************
> File Name: MyDB.cpp
> Author:fengxin 
> Mail:903087053@qq.com 
> Created Time: 2017年07月21日 星期五 16时02分51秒
************************************************************************/

#include<iostream>
#include<string>
#include "MyDB.h"

using namespace std;

MyDB::MyDB()
{
    mysql=mysql_init(NULL);   //初始化数据库连接变量
    if(mysql==NULL)
    {
        cout<<"Error:"<<mysql_error(mysql);
        exit(1);
    }
}

MyDB::~MyDB()
{
    if(mysql!=NULL)  //关闭数据连接
    {
        mysql_close(mysql);
    }
}


bool MyDB::initDB(string host,string user,string passwd,string db_name)
{
    // 函数mysql_real_connect建立一个数据库连接  
    // 成功返回MYSQL*连接句柄,失败返回NULL  
    mysql = mysql_real_connect(mysql, host.c_str(), user.c_str(), passwd.c_str(), db_name.c_str(), 0, NULL, 0);  
    if(mysql == NULL)  
    {  
        cout << "Error: " << mysql_error(mysql);  
        exit(1);  
    }  
    return true;  
}

bool MyDB::exeSQL(string sql)
{
    //mysql_query()执行成功返回0,执行失败返回非0值。
    if (mysql_query(mysql,sql.c_str()))
    {
        cout<<"Query Error: "<<mysql_error(mysql);
        return false;
    }
    else // 查询成功
    {
        result = mysql_store_result(mysql);  //获取结果集
        if (result)  // 返回了结果集
        {
           int  num_fields = mysql_num_fields(result);   //获取结果集中总共的字段数,即列数
           int  num_rows=mysql_num_rows(result);       //获取结果集中总共的行数
           for(int i=0;i<num_rows;i++) //输出每一行
            {
                //获取下一行数据
                row=mysql_fetch_row(result);
                if(row<0) break;

                for(int j=0;j<num_fields;j++)  //输出每一字段
                {
                    cout<<row[j]<<"\t\t";
                }
                cout<<endl;
            }

        }
        else  // result==NULL
        {
            if(mysql_field_count(mysql) == 0)   //代表执行的是update,insert,delete类的非查询语句
            {
                // (it was not a SELECT)
                int num_rows = mysql_affected_rows(mysql);  //返回update,insert,delete影响的行数
            }
            else // error
            {
                cout<<"Get result error: "<<mysql_error(mysql);
                return false;
            }
        }
    }

    return true;

}


编译:

编译时,记得在末尾加上

`mysql_config --cflags --libs` 

才能编译通过。
例如:

g++ MyDB.cpp test.cpp  -o test    `mysql_config --cflags --libs` 


使用示例:

测试的例子是,创建一个test数据库,向数据库里的记录用户帐号密码的accounts表中添加和查询数据。

首先,我们在终端下登录数据库,创建一个test数据库,并创建一个名为accounts的表。
mysql -u root -p
Enter password:
Welcome to the MySQL monitor.

mysql>create database test;
Query OK, 1 row affected (0.00 sec)
mysql>use test;
Database changed
mysql>create table accounts(name char(20) not null primary key,passwd char(20) not null);
Query OK, 0 rows affected (0.52 sec)
mysql>exit;

相关的表创建完成,接下来通过test.cpp来向数据库中添加两条用户帐号的信息并将它读取出来。
代码如下:

/*************************************************************************
    > File Name: test.cpp
    > Author:fengxin 
    > Mail:903087053@qq.com 
    > Created Time: 2017年07月21日 星期五 16时43分55秒
 ************************************************************************/

#include<iostream>
#include"MyDB.h"
using namespace std;


int main()
{
    MyDB db; 
    //连接数据库
    db.initDB("localhost","root","fengxin","test");
    //将用户信息添加到数据库
    db.exeSQL("INSERT accounts values('fengxin','123');");
    db.exeSQL("INSERT accounts values('axin','456');");
    //将所有用户信息读出,并输出。
    db.exeSQL("SELECT * from accounts;");

    return 0;
}

我写了一个简单的Makefile,编译起来更加方便。

test:test.cpp MyDB.cpp  
    g++  test.cpp MyDB.cpp -o test  `mysql_config --cflags --libs` 

然后执行make,并运行test。
运行结果如下:

./test
axin 456
fengxin 123

通过终端连接数据库查看accounts表的内容,我们看到的结果也是一样的。

mysql> select * from accounts;
+---------+--------+
| name    | passwd |
+---------+--------+
| axin    | 456    |
| fengxin | 123    |
+---------+--------+
2 rows in set (0.00 sec)
linux boost访问mysql_Linux下C++连接操作MySQL数据库环境搭建 Linux下C++连接操作MySQL数据库环境搭建日期     版本   作者   修改内容   备注2017年4月8日 V1.0   刘胜军  文件初建   无一、引言1.1 编写目的Linux下C++连接操作MySQL数据库环境搭建1.2 术语gcc/gcc-c++:The GNU Compiler Collection includes front ends for C, C++, Obje... 阅读详情

相关推荐

使用C++在Linux下连接和操作MySQL数据库

在Linux环境下,我们可以使用C++编程语言来连接和操作MySQL数据库。本文将介绍如何使用C++编写代码来连接MySQL数据库,并进行一些基本的操作,例如执行查询和插入数据。通过上述示例代码,我们可以在Linux环境下使用C++连接和操作MySQL数据库。当然,这只是一个简单的示例,你可以根据自己的需求进行更复杂的数据库操作。接下来,我们将介绍如何执行一些基本的数据库操作,例如执行查询和插入数据。除了执行查询,我们还可以使用类似的方式执行插入、更新和删除等操作。在上面的代码中,我们使用。

VcyReact的博客 573

「MySQL-04」Linux环境下使用C/C++连接并操纵MySQL

文章详细介绍了如何使用Connector/C库 和 在Linux环境下如何使用C/C++连接MySQL

look_outs的博客 6765

使用 C++ 编程语言在 Linux 下调用 MySQL 数据库

通过使用 OTL 库和 MySQL Connector/C++,我们可以方便地在 Linux 环境下使用 C++ 编程语言连接和操作 MySQL 数据库。在本文中,我们提供了一个简单的示例,演示了如何插入一条记录。你可以根据自己的需求扩展该示例,执行其他的数据库操作。希望这篇文章能够帮助你开始在 Linux 下使用 C++ 进行 MySQL 数据库编程。如果你有任何问题,请随时提问。

SrySmalltalk的博客 414

Linux下C/C++链接mysql

此时表中只剩下两条数据,我们应该怎么打印出来呢?那么就先聊聊下面的函数,配合mysql_query()一起使用。到这里的话基本的一套连接就完成了,我先给出代码,下面再针对语句操作的api来说。今天聊聊linux下去用c/c++连接mysql去进行一些语句的操作流程。这个函数作用是执行sql语句,指的是任何语句,而不是简单的增删什么的。好了根据上面的函数,我们调用去打印表里的内容就可以。

oorik的博客 3530

linux下C++程序连接mysql数据库

1)安装mysql:sudo apt-get install mysql-server mysql-client,这两个东西安装好后,(安装的过程中,会有设置用户名和密码的提示,我设置为root用户)sudo apt-get install libmysqlclient15-dev,(如果没有这一步,会找不到mysql.h),安装完后,在/usr/include/mysql/ 下就会有mysql.h 2)登陆mysql数据库,mysql -uroot -p,回车输入密码,然后创建一个数据库,create table Lottery;,我创建了Lottery数据库。 3)附件是程序连接数据库,然后在Lottery中建立一个表。

MT5交易软件系统源码

Manager配置的功能及权限:管理客户、开户,销户、入金、信用额度、修改定单、人工交易报表、设定点差、强制平仓、修改密码,设定持仓交割单或挂单小止盈止损点数;26、修改价格 27、更改K线图历史价格 28、同步历史数据;2、系统设置 3、交易管理 4、交易柜台 5、价格更改 6、多台服。务器联机 7、恢复交易历史 8、数据源调整 9、备份服务调整 10、交易市场设定 11、交易单更改 12、平台时间设定(全世界) 13、可添加商品;15、设置商品利息;独立主机(服务器、VPS、VM)

tutujunjun的博客 904

linux下c++操作MySQL

gbg

weixin_51459144的博客 2251

生态位宽度计算&可视化展示(R语言)

物种的生态位越宽,该物种的特化程度就越小,倾向于泛化种(generalist species);物种的生态位越窄,倾向于是一个特化种(specialists species)。生态位宽度是指物种(或其它生物单位)在群落中所利用的各种不同资源的总和。本篇所使用为生态位宽度指数即**Levins的生态位宽度指数。

weixin_53705272的博客 4435

linux下C++连接mysql数据库

今天花了一整个下午寻找linux下C++连接mysql数据库的方法。 可以直接调用有mysql C API 可以,在网上看到很多人推荐用这种方法。 但是又搜到另一个库Mysql++  (http://tangentsoft.net/mysql++/)。这个是将mysql C API 封装后得到的,我看了网上的一些例子,觉得很方便。因此决定找些这方面的资料,好好看看。 http://tange

4945

WordPress MasterStudy LMS插件 SQL注入漏洞复现(CVE-2024-1512)

WordPress Plugin MasterStudy LMS 3.2.5 版本及之前版本存在安全漏洞,该漏洞源于对用户提供的参数转义不足,导致可以通过 /lms/stm-lms/order/items REST 路由的 user 参数进行基于联合的 SQL 注入。

0xSec 1437

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项初赛模拟卷1及答案解析)

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项初赛模拟卷1及答案解析)

王老师青少年编程 2023

linux 下C++连接mysql数据库

linux 下C++连接mysql数据库 mjrao 发布于 2013年01月07日 19时, 0评/814阅 分享到  新浪微博腾讯微博 收藏+12 踩顶0 linux 下C++连接mysql数据库 标签: 代码片段(3) [文件] mydb.h ~ 416B    下载(37) 01 #if

843

uniapp - 微信授权登录报错 errMsg“:“login:fail send“ | “code“:-100 | “innerCode“:-6,解决uni-app调用微信登录时没有响应且返回错误

uni-app,微信登录,微信登录报错,微信小程序,支付宝小程序,安卓app,苹果ios,nvue,H5网页网站,uniapp苹果安卓app,微信授权登录,uniAppAPP端微信登录报错,微信确认登录界面后点击登录报错,"errMsg":"login:failsend","errCode":-100,"code":-100,"innerCode":-6,都配置好了还是报错怎么办,uniapp微信授权登录报错,UniApph5对接微信登录出现错误,appid,应用签名,微信登陆,code:-100

🏆 前端领域优质创作者 1万+

在Linux中使用C++连接MySQL数据库

linux中使用c++链接数据库并操作方法

m0_68021330的博客 483

YOLOv11缝合添加注意力机制:添加YOLO-Face的SEAM到并行通道空间注意力机制【附代码】

在目标检测的实际应用中,物体遮挡是一个严重影响检测精度的难点。本文将基于YOLOv11架构,探索融合YOLO-Face中提出的SEAM注意力机制以提升对遮挡物体的感知能力,并在此基础上提出一种轻量化双路径并行注意力机制C2PSA,进一步提升检测性能。

一键难忘的博客 1527

华为OD机考双机位C卷 - 评委评分 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 评委评分 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1750

ubuntu cpp与mysql连接_linux(ubuntu)下C++访问mysql数据库

向表中插入(删除)一条数据 #include #include using namespace std;int main(int argc, char* argv[]){//准备mysql的访问结构MYSQL mysql;mysql_init( &mysql );mysql_real_connect(&mysql,"192.168.16.114",//要访问数据库的IP地址"roo...

weixin_28834765的博客 293

PINN驱动的3D不可压缩流场重建——从稀疏2D2C观测到完整物理场反演——含源码实现

多尺度融合策略在此发挥作用:高分辨率的2D2C数据用于约束平面内的精细结构,而低分辨率的3D3C数据提供第三维度的粗尺度信息。迁移学习架构在此发挥关键作用。这种策略在湍流封闭模型构建中尤为有效,其中RANS提供的平均流场与DNS的雷诺应力数据融合,显著提升了分离流的预测精度。在稀疏数据场景下,注意力权重根据观测数据的分布动态调整,强化数据缺失区域的物理约束,同时避免过拟合于观测点。这种机制与自适应采样的结合,实现了计算效率与重建精度的平衡,在仅保留约百分之十关键节点的情况下,仍能保持高物理一致性。

u012133341的博客 135

linux下使用mysql数据库的C++ API 连接

linux下使用mysql数据库的C++ API 连接 安装mysql deepin ubuntu debian系 sudo apt install mysql-client mysql-server 备注:这样安装的是mariadb,它是mysql的一个开源分支,因为mysql被甲骨文收购后,甲骨文的尿性大家都知道,存在闭源的风险,于是mysql的创始人成立了mariadb项目,完全兼容...

C++是世界上最好的语言,手动狗头 1104

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Linux下C++连接操作MySQL数据库环境搭建

[align=center][size=large][b]Linux下C++连接操作MySQL数据库环境搭建[/b][/size][/align] [align=left][b]  日期     版本   作者   修改内容   备注[/b][/align] [align=left][b]  2017年4月8日 V1.0   刘胜军  文件初建   无[/b][/align] [si...

娃儿回家 677

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Linux(C++)连接MySQL数据库

Linux(C++)连接MySQL数据库一、 环境安装二、 配置三、 头文件四、 函数1. 分配或初始化MYSQL对象2. 连接一个mysql服务器3. 执行指定查询语句字符串的SQL查询4. 获取最后一次查询语句字符串的SQL查询的结果集5. 返回结果集中的行数6. 返回结果集中的列数7. 获取下一个列的类型8. 从结果集中获取下一行9. 获取对应列的类型10. 关闭MYSQL五、C++封装MyDB类 一、 环境安装 首先是MySQL的安装,直接只用apt-get命令安装(这里推荐使用这种方式安装,因为

ymxyld的博客 4294

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

113-Linux_安装c/c++开发库及连接mysql数据库

安装开发c/c++的库,命令:==apt install

Eccentric哈哈的博客 934

mysql怎么连接指定的数据库文件_Linux下编写C++程序连接mysql数据库编译时指定头、库...

Linux下编写C++程序连接mysql数据库编译时需要指定头文件路径、mysql库,有两种方式:1. g++ main.cpp mysql_deal.cpp -I/usr/include/mysql -L/usr/bin/mysql -lmysqlclient2. g++ $(mysql_config --cflags) main.cpp mysql_deal.cpp $(mysql_...

weixin_28849929的博客 191

linux下C++如何连接mysql数据库

在Linux下,我们可以通过MySQL提供的C API连接数据库。 使用C API连接mysql数据库除了要安装mysql-client和mysql-server,还需要安装mysql的开发包mysql-devel。 我的系统是fedora,安装命令如下:sudo yum install mysql-devel ubuntu下安装命令:sudo apt-get install libmysqld-dev 然后加上<mysql/mysql.h>头文件就可以使用了。 ...

qq_36484196的博客 387
上一篇: MySQL5.7免密重置root密码
下一篇: c++通过cout输出字符变量的地址
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值