日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

cpp mysql fetch row_Linux下C++访问MySQL

發布時間:2024/10/8 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cpp mysql fetch row_Linux下C++访问MySQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天給大家演示在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

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的cpp mysql fetch row_Linux下C++访问MySQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。