目录
2,插入数据时出现Incorrect string value: '\xC0\xAD\xC0\xAD' for column 'user_name' at row 1,数据库无法识别的字符串错误
3、使用C++获取系统时间并存进Mysql中DateTime类型的字段
mysql开发中文博客:iMySQL | 老叶茶馆 – Oracle MySQL ACE Director,专注MySQL
通过mySQL++库
2020-04-20 20:29:49
简介
MySQL其实提供了C实现的接口,而MySQL++则是一个C++实现的封装MySQL C接口的一个Wrapper,遵循了标准C++的规则,是个跨平台的开源工具。我们主要用MySQL++来开发C++程序。
安装和配置
linux环境
还是万年不变的新手主题——安装和配置
安装MySQL++之前需要先安装MySQL:
[root@ollen mysql++]# yum install mysql-devel
紧接着下载MySQL++源码并解压,我们把压缩包解压到/usr/mysql++下:
- [root@ollen mysql++]# wget http://www.tangentsoft.net/mysql++/releases/mysql++-3.2.2.tar.gz
- [root@ollen mysql++]# tar -zxvf mysql++-3.2.2.tar.gz
- [root@ollen mysql++]# mv mysql++-3.2.2 mysql++
进入mysql++目录下,开始编译,先执行./configure生成makefile文件,之后再make,编译出libmysqlpp.so库文件:
- [root@ollen mysql++]# ./configure --enable-thread-check --enable-disasm LDFLAGS='-pthread'
- [root@ollen mysql++]# make
- [root@ollen mysql++]# make install
(注意:configure 不加--enable-disasm LDFLAGS='-pthread'参数make会报错undefined reference to symbol 'pthread_create@@GLIBC_2.2.5' )
install成功后会将.so文件拷贝到/usr/local/lib下,并把.h头文件拷贝到/usr/local/include下。
到这里MySQL++已经安装到本机了,然而如果直接在C++代码里引用如下头文件是无法编译通过的!
#include <mysql++.h>
原因是C++在编译时需要加载这个动态库,默认情况下,g++编译器只会使用/lib和/usr/lib这两个目录下的库文件。回头看一下make之前的./configure步骤,我们并没有指定--prefix=/some/path,所以库会默认安装到/usr/local目录下。既然libmysqlpp.so是在/usr/local/lib下,编译器当然就无法找到它的定义了。
那么编译器如何正确找到/usr/local/lib目录呢?
/etc/ld.so.conf文件记录了编译器编译时使用的动态库路径!那我们把/usr/local/lib路径加入到文件末尾就可以了!
配置文件修改保存后,通过ldconfig程序(在usr/sbin/下),将/etc/ld.so.conf文件列举的路径下的库文件缓存到/etc/ld.so.cache以供开发使用:
[root@ollen mysql++]# ldconfig
建议多做一步,创建so的连接:
[root@localhost mysql++]# ln -s /usr/local/lib/libmysqlpp.so /usr/lib/libmysqlpp.so
到这里就配置完成了。
WIN32环境
1、下载源码,解压,用VS打开工程
2、mysql++是对