我正在尝试使用以下代码连接到 MySQL 数据库。但它一到达“Query query = conn.query()”行就会抛出 EXC_BAD_ACCESS。可能是什么原因?提前致谢!
#include <iostream>
#include <mysql++/mysql++.h>
using namespace mysqlpp;
int main(int argc, const char * argv[])
{
try {
Connection conn(false);
if (conn.connect("db", "localhost", "root", "root")) {
Query query = conn.query("select * from django_site");
}
}
catch (BadQuery er) {
std::cerr << "Error: " << er.what();
return -1;
} catch (const BadConversion& er) {
// Handle bad conversions
std::cerr << "Conversion error: " << er.what() << std::endl <<
"\tretrieved data size: " << er.retrieved <<
", actual size: " << er.actual_size << std::endl;
return -1;
} catch (const Exception& er) {
// Catch-all for any other MySQL++ exceptions
std::cerr << "Error: " << er.what() << std::endl;
return -1;
}
return 0;
}
打印 conn 对象返回
(mysqlpp::Connection) conn = {
mysqlpp::OptionalExceptions = {
exceptions_ = false
}
error_message_ = "\xe5$}\xff\x7f"
driver_ = 0x00007fff5fc005a8
co
更麻烦的是“conn_”变量指向NULL
(mysqlpp::Query) query = {
std::__1::ostream = {
std::__1::basic_ios<char, std::__1::char_traits<char> > = {
std::__1::ios_base = {
__fmtflags_ = 0
__precision_ = 0
__width_ = 0
__rdstate_ = 0
__exceptions_ = 0
__rdbuf_ = 0x0000000000000000
__loc_ = 0x0000000000000000
__fn_ = 0x0000000000000000
__index_ = 0x0000000000000000
__event_size_ = 0
__event_cap_ = 0
__iarray_ = 0x0000000000000000
__iarray_size_ = 0
__iarray_cap_ = 0
__parray_ = 0x0000000000000000
__parray_size_ = 0
__parray_cap_ = 0
}
__tie_ = 0x0000000000000000
__fill_ = 0
}
}
mysqlpp::OptionalExceptions = {
exceptions_ = false
}
template_defaults = {
std::__1::vector<mysqlpp::SQLTypeAdapter, std::__1::allocator<mysqlpp::SQLTypeAdapter> > = size=0 {}
parent_ = 0x0000000000000000
processing_ = false
}
conn_ = 0x0000000000000000
copacetic_ = false
parse_elems_ = size=0 {}
parsed_names_ = size=0 {}
parsed_nums_ = size=0 {}
sbuffer_ = {
std::__1::basic_streambuf<char, std::__1::char_traits<char> > = {
__loc_ = {
__locale_ = 0x0000000000000000
}
__binp_ = 0x0000000000000000
__ninp_ = 0x0000000000000000
__einp_ = 0x0000000000000000
__bout_ = 0x0000000000000000
__nout_ = 0x0000000000000000
__eout_ = 0x0000000000000000
}
__str_ = ""
__hm_ = 0x0000000000000000
__mode_ = 0
}
}