Mysql++ 简单脚本编译失败
Mysql++ simple script compilation failure
我不久前开始学习c ++,目前正在尝试创建一个简单的mysql db连接。虽然我有 Web 开发人员背景,但由于没有 c++ 知识和工作原理,设置一切都非常困难。无论如何,我设法安装了mysql++,并从教程中获得了一段代码,如下所示:
#include </usr/local/include/mysql++/mysql++.h>
#include </usr/local/include/mysql++/cmdline.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
const char* db = "backseat";
const char* server = "localhost";
const char* user = "root";
const char* pass = "root";
mysqlpp::Connection conn(true);
if ( conn.connection(db, server, user, pass) )
{
mysqlpp::Query query = conn.query('SHOW TABLES');
if ( mysqlpp::StoreQueryResult res = query.store() )
{
cout << "We have: " << endl;
for (size_t i=0; i < res.num_rows(); i++)
{
cout << 't' << res[i][0] << endl;
}
}
else
{
cerr << "Failed to get item list: " << query.error() << endl;
return 1;
}
return 0;
}
else
{
cerr << "DB connection failed: " << conn.error() << endl;
return 1;
}
}
这应该可以工作,但 G++ 给了我以下输出:
syd@whitebook:~/Desktop$ g++ sql.cpp -o sql -DMYSQLPP_MYSQL_HEADERS_BURIED
sql.cpp:19:37: warning: character constant too long for its type [enabled by default]
sql.cpp: In function ‘int main()’:
sql.cpp:17:12: error: ‘class mysqlpp::Connection’ has no member named ‘connection’
sql.cpp:19:50: error: invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]
/usr/local/include/mysql++/connection.h:251:8: error: initializing argument 1 of ‘mysqlpp::Query mysqlpp::Connection::query(const char*)’ [-fpermissive]
syd@whitebook:~/Desktop$
我在这里做错了什么?你还会建议 mysql++ 还是其他东西?
PS:教程 - 从这里获取的指南:http://my-problem-solved.blogspot.gr/2010/12/installing-mysql-server-and-mysql-apl.html
您有一个拼写错误(缺少 t)
mysqlpp::Connecion conn(true);
应该是
mysqlpp::Connection conn(true);
^
^
更正此问题时可能会遇到其他错误,但这是编译错误的原因。如果您非常仔细地阅读编译错误消息,您会发现它实际上回显了键入错误的类名Connecion
。
鉴于您重写了问题,我相信您想要的函数称为
conn.connect(db, server, user, pass)
当我使用 mysql++ 时,这当然对我有用。您也可以使用
conn.connected();
查看您的连接是否正常;
也
mysqlpp::Query query = conn.query("SHOW TABLES");
而不是
mysqlpp::Query query = conn.query('SHOW TABLES');
或者您可以使用<<
运算符
Query query = conn.query();
query << "SHOW TABLES";
相关文章:
- luaL_dofile在已知良好的字节码上失败,可以使用未编译的版本
- 包含模板文件的递归会导致编译失败
- 提升 1.64 单元测试编译失败
- 如何让谷歌测试正常运行。测试总是失败。(它不会编译)
- 运行时检查失败 #0 用于运行时重新编译
- C++模板的模板编译失败
- 使用已删除的函数进行编译失败,并显示 uclibc
- MinGW-w64 编译失败,nullptr_t
- 使用提升线程时编译失败
- 编译花絮 g++, clang++, 使用 libboost -- g++8 编译失败时 g++7 成功;
- 编译成功,使用 clang 5.0.1/6.0.0 ,在 5.0.2/6.0.1 时失败
- CMake + Qt,moc 编译失败,无法实现 QMetaObject 方法(编译器找不到基本 ui 对象的标头?
- 带有引用的std::tuple在clang中编译失败,但在gcc中编译失败
- bitbake-grpc交叉编译/配置失败,错误为c-ares::care引用文件/usr/lib/libcares.s
- 解决由于在哈希函数中使用了不完整的类型而导致的编译失败
- 将XCode升级到verison 11.1后,C++编译失败
- 继承的构造函数,在 clang++3.9 中编译,在 g++ 7 中失败
- C++:此代码可以编译,但引发运行时检查失败 #2 - 围绕变量周围的堆栈'num'已损坏。发生
- 添加类型名会导致程序编译失败
- 将 qi::lexeme 添加到灵气中的规则时编译失败