我使用visual studio 2012.我有控制台应用程序。我应该连接到mysql服务器,我使用mysql Connector / C ++,但是当我从表中读取时,例如,如果我应该得到'word',我会得到四个未知符号,'word',之后有很多未知符号(也有单词)并以致命错误结束。有什么问题?我应该使用连接器C吗?
这是我的代码`
sql::mysql::MySQL_Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
driver = sql::mysql::get_mysql_driver_instance();
con = driver->connect("localhost", "root", "pass");
stmt = con->createStatement();
stmt->execute("USE mail_members");
sql::ResultSet* res = stmt->executeQuery("SELECT id FROM messages");
int k = 0;
res->next();
std::cout << res->getString("id").asStdString();
delete con;
delete stmt;
有人使用Mysql connector.c ++吗?
P.S。这是我的消息表`
Field Type NULL Key Default | Extra
id int(11) Yes NULL
message text YES NULL
我在其他应用程序中使用MysqlConnector / C#并且它正常工作,可能这不起作用,因为我的应用程序是consiole(使用stdafx文件)?
答案 0 :(得分:0)
您的代码是否会抛出任何异常?
我将字段名称放入std::string
,然后传递给结果集方法:
const std::string name = fri.get_field_name();
unsigned int result_value = m_resultset.getUInt(name);
在我的表中,记录ID字段是整数而不是字符串。
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| ID_Title | int(10) unsigned | NO | PRI | NULL | auto_increment |
| Title | varchar(64) | NO | UNI | NULL | |
+----------+------------------+------+-----+---------+----------------+
2 rows in set (0.08 sec)
您的ID字段是否为字符串?