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 be0
or1
,1
meansMYSQL_OPT_LOCAL_INFILE
will be set.charset
reconnect
- if set to 1, setMYSQL_OPT_RECONNECT
to reconnect on connection loss.connect_timeout
- should be positive integer value that means seconds corresponding toMYSQL_OPT_CONNECT_TIMEOUT
.read_timeout
- should be positive integer value that means seconds corresponding toMYSQL_OPT_READ_TIMEOUT
.write_timeout
- should be positive integer value that means seconds corresponding toMYSQL_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)
在编译输出得到结果
还没有评论,来说两句吧...