今天给大家演示在linux下如果用C++操作mysql

1:安装MySQL

挂载光盘:

mkdir /cdrom

mount /dev/hdc /cdrom

cd /cdrom/Server

rpm -ivh perl-DBI-1.52-2.el5.i386.rpm

rpm -ivh mysql-5.0.45-7.el5.i386.rpm mysql-bench-5.0.45-7.el5.i386.rpm mysql-devel-5.0.45-7.el5.i386.rpm

rpm -ivh perl-DBD-MySQL-3.0007-2.el5.i386.rpm

rpm -ivh mysql-server-5.0.45-7.el5.i386.rpm mysql-test-5.0.45-7.el5.i386.rpm

查看mysql服务状态:

service mysqld status

启动服务:

service mysqld start

连接数据库:

mysql

2:安装gcc工具包

rpm -ivh gcc* --force --nodeps 强制安装

3:进入mysql

create table t1 (id int,name varchar(30));

t1表插入数据:

1.cpp

#include

#include

#include

using namespace std;

main()

{

MYSQL mysql;

mysql_init(&mysql);

mysql_real_connect(&mysql, "localhost", "root", "root", "test", 3306, NULL, 0);

string sql = "insert into t1 (id, name) values (1, 'java1');";

mysql_query(&mysql, sql.c_str());

mysql_close(&mysql);

}

g++ -o 1.out 1.cpp -lmysqlclient -I/usr/include/mysql/ -L/usr/lib/mysql

更新mysql数据;

1.cpp

#include

#include

#include

using namespace std;

main()

{

MYSQL mysql;

mysql_init(&mysql);

mysql_real_connect(&mysql, "localhost", "root", "root", "test", 3306, NULL, 0);

string sql = "insert into t1 (id,name) values (2, 'java2'),(3, 'java3');";

mysql_query(&mysql, sql.c_str());

sql = "update t1 set name = 'java33' where id = 3;";

mysql_query(&mysql, sql.c_str());

mysql_close(&mysql);

}

g++ -o 1.out 1.cpp -lmysqlclient -I/usr/include/mysql/ -L/usr/lib/mysql

./1.out

mysql 存储过程:

mysql>delimiter //

>create procedure p01()

>begin

>insert into t1 (id,name) values (66, 'java66');

>end;

>//

应用存储过程:

mysql>delimiter //

>create procedure p01()

>begin

>insert into t1 (id,name) values (66, 'java66');

>end;

>//

触发器:

新建t2表:

mysql>delimiter //

>create trigger tr1 after insert on t1 for each row

>begin

>insert into t2 (id,name) values (new.id,new.name);

>end;

>//

>delete from t1 where id = 66;

>//

>delimeter ;

vi 3.cpp

#include

#include

#include

using namespace std;

main()

{

MYSQL mysql;

mysql_init(&mysql);

mysql_real_connect(&mysql, "localhost", "root", "root", 3306, NULL, 0);

string sql = "call p01();";

mysql_query(&mysql, sql.c_str());

mysql_close(&mysql);

}

g++ -o 3.out 3.cpp -lmysqlclient -I/usr/include/mysql/ -L/usr/lib/mysql

./3.out

mysql>delimeter ;

>select * from t1;

>select * from t2;

>存在数据(66, 'java66')

查看表中数据的总数:

vi 4.cpp

#include

#include

#include

using namespace std;

main()

{

MYSQL mysql;

MYSQL_RES *result = NULL;

mysql_init(&mysql);

mysql_real_connect(&mysql, "localhost", "root", "root", "test", 3306, NULL, 0);

string sql = "select id,name from t1;";

mysql_query(&mysql, sql.c_str());

result = mysql_store_result(&mysql);

int rowcount = mysql_num_rows(result);

cout << rowcount << endl;

mysql_close(&mysql);

}

g++ -o 4.out 4.cpp -lmysqlclient -I/usr/include/mysql/ -L/usr/lib/mysql

./4.out

查处字段的总数:

vi 5.cpp

#include

#include

#include

using namespace std;

main()

{

MYSQL mysql;

MYSQL_RES *result = NULL;

mysql_init(&mysql);

mysql_real_connect(&mysql, "localhost", "root", "root", 3306, NULL, 0);

string str = "select id,name from t1;";

mysql_query(&mysql, sql.c_str());

result = mysql_store_result(&mysql);

int rowcount = mysql_num_rows(result);

cout << rowcount << endl;

int fieldcount = mysql_num_fields(result);

cout << fieldcount << endl;

mysql_close(&mysql);

}

g++ -o 5.out 5.cpp -lmysqlclient -I/usr/include/mysql/ -L/usr/lib/mysql

./5.out

列出具体字段名:

vi 6.cpp

#include

#include

#include

using namespace std;

main()

{

MYSQL mysql;

MYSQL_RES *result = NULL;

MYSQL_FIELD *field = NULL;

mysql_init(&mysql);

mysql_real_connect(&mysql, "localhost", "root", "root", "test", 3306, NULL, 0);

string str = "select id,name from t1;";

mysql_query(&mysql, sql.c_str());

result = mysql_store_result(&mysql);

int rowcount = mysql_num_rows(result);

cout << rowcount << endl;

int fieldcount = mysql_num_fields(result);

cout << fieldcount << endl;

for(int i = 0; i < fieldcount; i++)

{

field = mysql_fetch_field_direct(result,i);

cout << field->name << "\t\t";

}

cout << endl;

mysql_close(&mysql);

}

g++ -o 6.out 6.cpp -lmysqlclient -I/usr/include/mysql/ -L/usr/lib/mysql

./6.out

显示表中所有数据:

vi 7.cpp

#include

#include

#include

using namespace std;

main()

{

MYSQL mysql;

MYSQL_RES *result = NULL;

MYSQL_FIELD *field = NULL;

mysql_init(&mysql);

mysql_real_connect(&mysql, "localhost", "root", "root", 3306, NULL, 0);

string str = "select id,name from t1;";

mysql_query(&mysql, sql.c_str());

result = mysql_store_result(&mysql);

int rowcount = mysql_num_rows(result);

cout << rowcount << endl;

int fieldcount = mysql_num_fields(result);

cout << fieldcount << endl;

for(int i = 0; i < fieldcount; i++)

{

field = mysql_fetch_field_direct(result,i);

cout << field->name << "\t\t";

}

cout << endl;

MYSQL_ROW row = NULL;

row = mysql_fetch_row(result);

while(NULL != row)

{

for(int i=1; i

{

cout << row[i] << "\t\t";

}

cout << endl;

row = mysql_fetch_row(result);

}

mysql_close(&mysql);

}

g++ -o 7.out 7.cpp -lmysqlclient -I/usr/include/mysql/ -L/usr/lib/mysql

./out

©著作权归作者所有:来自51CTO博客作者Art_Hero的原创作品,如需转载,请注明出处,否则将追究法律责任

C++LinuxMySQLLinux

cpp mysql fetch row_Linux下C++访问MySQL相关推荐

  1. linux下mysql无法访问_Linux系统下无法访问mysql怎么办

    ysql是一个关系型数据库管理系统,但最近有用户反映,在Linux系统下无法访问mysql,相信不少用户都有遇到过这个问题,这是怎么回事呢?Linux系统下无法访问mysql该怎么办呢?接下来是小编为 ...

  2. php访问mysql数据库实验报告,php访问mysql数据库

    //建一个连接,造一个连接对象 $db = new MySQLi("localhost","root","123","mydb&q ...

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

    向表中插入(删除)一条数据 #include #include using namespace std; int main(int argc, char* argv[]) { //准备mysql的访问 ...

  4. linux(ubuntu)下C++访问mysql数据库

    2019独角兽企业重金招聘Python工程师标准>>> Ubuntu安装msyql 安装mysql数据库 sudo apt-get install mysql-server 安装my ...

  5. Linux(CentOS7.0)下 C访问MySQL (转)

    按语:      最近项目在云服务器上 centos6.8,安装了mysql5.5.39 server和client,但C连接不知所措: 后在官网下载了 devel.share .share-comp ...

  6. 【MySql】linux下,设置mysql表名忽略大小写

    [障碍再现] 状况描述01: 在LINUX下调一个程序经常报出找不到表,但是我明明是建了表的, 测试的时候,遇到一些问题,从Windows平台访问虚拟机中的Web应用,经常报出找不到表,但自己明明在数 ...

  7. linux c mysql教程_linux下c操作mysql之增删改查

    书接上文,继续进行linux 下c操作mysql. 1.创建表/插入数据 mysql> desc children -> ; +---------+-------------+------ ...

  8. mysql odb驱动_odb C++访问mysql数据库,从安装到写入

    一:ubuntu下odb 安装 get-apt install gcc get-apt install g++ get-apt install odb 生成的odb位于:/usr/odb 生成的库(l ...

  9. linux 安装qt mysql库_Linux下QT平台Mysql数据库开发环境配置

    This doucment is about how to add mysql driver into QT and about database connections     由于之前安装RedH ...

最新文章

  1. Spring Cloud Config 配置中心
  2. [Silverlight入门系列]使用MVVM模式(6):使用Behavior
  3. PMCAFF | 创业公司产品经理如何建立完善的产品开发体系?
  4. PyTorch随笔-0
  5. 如何设定vs2012用linux文件格式,Visual Studio 2012发布网站详细步骤
  6. pbs 写matlab作业,pbs提交作业
  7. flask cache
  8. Leetcode 101.对称二叉树
  9. Network 第三篇 - STP生成树协议
  10. QT中QString 类的使用--获取指定字符位置、截取子字符串等
  11. BI项目经理入门指南:用最详细的图解,带你落地企业自助分析项目
  12. 补锅之校内测(桶哥系列)
  13. 获取客户端及服务器的信息
  14. CentOS 6.5 ZIP、RAR文件压缩解压操作详解
  15. OKCC外呼中心为什么要把语音引入WEB中?
  16. 结构体嵌套结构体,及其的初始化
  17. 一个IT售前咨询顾问是如何工作和生活的?
  18. 极域工具包 1.1正式发布!窗口化极域,解键盘锁,适配学生机房管理助手7.4-7.5!
  19. js基础-小案例歌词匹配
  20. 102_Hadoop常用命令

热门文章

  1. 2.1.5 操作系统之线程概念与多线程模型
  2. 手机蓝牙如何减少延时_如何使用车载蓝牙播放手机音乐的方法
  3. 设计模式理解:模板方法
  4. Clion生成动态链接库.dll
  5. python123第三章作业答案_swift playground类似的游戏
  6. javascript / DOM、BOM、document、window 区别和联系
  7. 节点服务器虚拟网络,虚拟网络功能节点放置研究
  8. 盘点 Serverless 架构的六个特质
  9. mysql 连接查询_Swoole 实战:MySQL 查询器的实现(协程连接池)
  10. h5+js视频播放器控件