本文作者:icy

SOCI-C++数据库访问-SOCI创建访问库-[二]

icy 2022-10-21 208 抢沙发
SOCI-C++数据库访问-SOCI创建访问库-[二]摘要: SOCI-C++数据库访问SOCI创建访问库-[二]今天我们用Mysql 做访问对象 引入头文件#include <soci/soci.h>soci::session...

SOCI-C++数据库访问SOCI创建访问库-[二]

今天我们用Mysql 做访问对象

引入头文件

#include

soci::session sql("mysql", "host=192.168.3.188 port=3306 db=zeligworld user=icy pass=xxxxxxxx"); // 建立访问

//  地一个参数 指明这是一个mysql 数据库  参数二如下

  • db //数据库

  • user // 用户名

  • pass //密码

  • host // 地址

  • port //端口

     //  下面还有其他参数

  • unix_socket

  • sslca

  • sslcert

  • local_infile - should be 0 or 1, 1 means MYSQL_OPT_LOCAL_INFILE will be set.

  • charset

  • reconnect - if set to 1, set MYSQL_OPT_RECONNECT to reconnect on connection loss.

  • connect_timeout - should be positive integer value that means seconds corresponding to MYSQL_OPT_CONNECT_TIMEOUT.

  • read_timeout - should be positive integer value that means seconds corresponding to MYSQL_OPT_READ_TIMEOUT.

  • write_timeout - should be positive integer value that means seconds corresponding to MYSQL_OPT_WRITE_TIMEOUT.


下面我们我们看来查询一个内容  直接使用 建立访问的sql对象即可

std::string file_alias;

sql << "SELECT  file_alias  from zelig_ctfile_uploaded WHERE  id = :id", soci::use(361, "id"),soci::into(file_alias);

 

完整代码如下

int main() {
    soci::session sql("mysql", "host=192.168.3.188 port=3306 db=zeligworld user=icy pass=xxxxxx");
    std::string file_alias;
    sql << "SELECT  file_alias  from zelig_ctfile_uploaded WHERE  id = :id", soci::use(361, "id"),soci::into(file_alias);

    std::cout << file_alias << std::endl;
    return 0;
}

这个时候编译你会发现 无法编译 哈 别忘记加 lib

在cmake文件里面 加入

link_libraries(-lsoci_core -lsoci_mysql -ldl -lmysqlclient)

在编译 哈依然无法编译 会提示 #error "SOCI must be configured with C++11 support when using C++11"

继续在cmake加入此定义  add_definitions(-DSOCI_HAVE_CXX11)

在编译输出得到结果

Untitled.png

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,208人围观)参与讨论

还没有评论,来说两句吧...