入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

c++操作mysql的API函数详解

创建时间:2013-10-15 投稿人: 浏览次数:6510

可以参考一下两个资源:

1,通俗易懂http://www.php.net/manual/zh/function.mysql-query.php

2,官网参考手册 http://dev.mysql.com/doc/refman/5.1/zh/apis.html#mysql-query 

非常详细,包括如何在不同平台上进行安装,数据库操作,以及各种语言对其进行调用的函数接口等等

以下是在c++环境下对mysql进行操纵的几个简单实例:

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

1:安装MySQL(若有问题可参考,博文 linux下安装mysql) 可以通过如下命令进行安装: 可以通过输入 yum install -y mysql-server mysql mysql-devel 命令将mysql mysql-server mysql-devel都安装好(注意:安装mysql时我们并不是安装了mysql客户端就相当于安装好了mysql数据库了,我们还需要安装mysql-server服务端才行)
也可通过光盘安装,挂载光盘: 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 <iostream>
#include <mysql/mysql.h>
#include <string>
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 <iostream>
#include <mysql/mysql.h>
#include <string>

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 <iostream>
#include <string>
#include <mysql/mysql.h>

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 <iostream>
#include <string>
#include <mysql/mysql.h>

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 <iostream>
#include <string>
#include <mysql/mysql.h>

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 <iostream>
#include <string>
#include <mysql/mysql.h>

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 << " ";
    }
    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 <iostream>
#include <string>
#include <mysql/mysql.h>

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 << " ";
    }
    cout << endl;
    MYSQL_ROW row = NULL;
    row = mysql_fetch_row(result);
    while(NULL != row)
    {
     for(int i=1; i<fieldcount; i++)
     {
        cout << row[i] << " ";
     }
     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

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像