引自 http://www.cppprog.com/2009/1209/184.html
加载MySQL++的步骤
- #include <windows.h> //确保在所有代码中都要包含这一句在首位,没有肯定不行
- #include "mysql++.h"; //使用sqlplus.hh也一样,不必要每个代码都包含
创建数据库的连接
- //构造一个Connection类的对象
- Connection con = new Connection();
- //创建数据库的连接
- con.real_connect("mysql" , "localhost" , "root" , "" );
- //第一个是db名称,然后是服务器地址,用户名,密码
有以上步骤就算创建了一个数据库连接了
下面是基本的状态显示方法
- cout << con.client_info() << endl; //显示客户端信息
- cout << con.host_info() << endl; //应该是连接的服务器与使用的协议
- cout << con.server_info() << endl; //显示服务器信息
- cout << con.stat() << endl; //server当前状态
可用的一些命令函数
- con.exec( "use test" ); //exec函数执行mysql命令,仅返回真或假,
- //可以使用一些命令比如delete from database等
- con.close(); //关闭连接,这个函数使用在最后与mysql来一个友好的byebye
- con.select_db("test" ); //选择一个database,我喜欢用命令而不是函数来做
单行结果的查询语句的例子
以下内容都假设在名字为mysql的db当中
- Query query = con.query(); //构造类Query的对象
- query << "select * from user limit 1" ; //你要执行的SQL语句
- ResUse res = query.use(); //构造ResUse的对象res
- Row row = res.fetch_row(); //将数据fetch到row对象中
- cout << row.raw_data(0) << endl; //第0个字段的内容
- //这些用法在多行或单行结构的查询语句中都通用
- cout << res.num_fields << endl; //字段的数量
- cout << res.field_name(0) << endl; //0字段的名字
- cout << row.size() << endl; //记录的数量
多行结果的查询语句例子
- Query query = con.query();
- query << "select * from user limit 1" ;
- Result res = query.store(); //Result对象
- Row row;
- Result::iterator i;
- for (i = res.begin(); i != res.end(); i++)
- {
- row = *i;
- cout << row[0].c_str() << row[1].c_str << endl; //显示内容0、1
- }