SOCI 段故障

发布于 2024-09-24 23:13:09 字数 701 浏览 3 评论 0原文

所以我已经有一段时间没有用 C++ 编码了,但我很确定这个问题与 SOCI 有关,而不是 C++ 中内存使用的一些常识。问题是:我使用 SOCI 查询表并获取字段,而 sql 语句行总是导致分段错误。这是相当麻烦的...这是代码:

string engine::getReview(int rev_id) 
{
    try {
        session sql;
        string post;

        sql.open("mysql", "db=ranking_dev user=****** password=*******");
        sql << "SELECT post FROM reviews WHERE id = 3", into(post); //Faulty line

        return post;
    }
    catch (exception const &e) {
        cerr << "Error: " << e.what() << '\n';
        return "";
    }
}

我确信这一行是错误的根源。我尝试初始化“post”变量,但无济于事。另外,如果我从表中检索整数值(从而将数据存储在整数中),则不会出现 SEG FAULT。所以我猜这个问题与我使用这个字符串的方式有关,但我可以看到我的函数中有任何过度错误的地方。对此有什么想法吗?

So I haven't been coding in C++ for quite a while now, but I'm pretty sure this issue is related to SOCI and not some general knowledge of memory usage in C++. Here is the problem : I'm using SOCI to query a table and get a field, and the sql statement line always cause a Segmentation Fault. Which is quite troublesome... Here is the code :

string engine::getReview(int rev_id) 
{
    try {
        session sql;
        string post;

        sql.open("mysql", "db=ranking_dev user=****** password=*******");
        sql << "SELECT post FROM reviews WHERE id = 3", into(post); //Faulty line

        return post;
    }
    catch (exception const &e) {
        cerr << "Error: " << e.what() << '\n';
        return "";
    }
}

I'm positive that this line is the root of the error. I tried to initialize the "post" variable, but to no avails. Also, if I retrieve an integer value from the table (and thus store the data in an integer), there's no SEG FAULT. And so I guess the issue is related to the way I'm using this string, but I can see anything overly wrong in my function. Any ideas on this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文