使用Mysql connector c++ 1.1.3连接数据库实现增、删、改、查过程中会遇到的问题。
最近用c++写服务器时,因为要保存数据所以选择了使用Mysql connector c++ 1.1.3这个工具包来连接mysql数据库,由于是第一次使用这个工具包,网上说这个工具包和java的JDBC连接mysql的机制是差不多的,但是用的时候还是遇到了一些问题。在这里分享一下相关问题和解决方法:
1.从数据看中查询记录返回的结果中文乱码问题:
安装好了boost库和Mysql connector c++ 1.1.3库后,我们配置好工程的属性,就能使用通过sql::Connection::createStatement(),方法创建的sql::Statement*对象,对数据库进行操作,但是如果你数据库中的编码是utf8或者其他支持中文的编码,那么你必需要在执行sql查询语句之前,执行这么一句代码:m_sqlStatement->execute("set names 'gbk'");这里的m_sqlStatement是一个sql::Statement*对象。这样你在执行查询语句,例如:m_sqlStatement->executeQuery("select * from userinfo_tbl"),就不会出现中文乱码了。
2,插入数据时出现Incorrect string value: '\xC0\xAD\xC0\xAD' for column 'user_name' at row 1,数据库无法识别的字符串错误
原因和上面差不多,是程序中对数据库进行操作的对象中使用的字符编码和数据库中的字符编码不一致所导致的,可以想象一下,我们编程时是通过Mysq