c++ - 为什么这个 SQL 查询似乎没有失败,但实际上失败了?
问题描述
我正在向我的 Web 服务器添加一个记录器类,并注意到我的日志没有被插入,尽管查询没有返回失败值。
这是我的数据库处理程序类的查询执行器函数:
//_mysql = MYSQL*
bool DatabaseConnection::query(const std::string &query) const {
return _mysql && 0 == mysql_real_query(_mysql, query.c_str(), query.length());
}
这是我试图执行的 SQL 查询:
insert into user_logs (id, action, when) value (1, 2, 1615856674);
当 C++ 程序执行此查询时,它返回成功但实际上并未插入该行。因此,我尝试通过客户端手动执行它,但查询失败,告诉我when
用`
.
之后,查询在客户端控制台和 C++ 程序中都按预期工作。
我想知道为什么它在 C++ 程序中没有失败?
解决方案
“当 C++ 程序执行此查询时,它返回成功但实际上并没有插入行。”
它取决于您的 C++ 程序正在使用的客户端。它可能只是简单地吞下了这个例外,并给你一种它成功而没有成功的印象。要找出原因,您需要深入研究 C++ mysql 客户端的源代码。
推荐阅读
- node.js - npm-check-updates (npm ncu):避免中断更新
- cypress - 在部署上运行赛普拉斯测试
- perl - Encode.c:可加载库和 perl 二进制文件不匹配(获得握手密钥 0xc500080,需要 0xc400080)
- c++ - 如何最好地使用 #include 来防止我的多重定义错误?
- python-3.x - 如何在 Python 中附加到数据框单元格内的列表?
- r - 将变量拉入新的数据框
- python - 使脚本搜索文件,如果找到则读取文件。蟒蛇3.5
- python - 删除数据框中公共列的内容
- python - 如何制作表格并在其中引入另一个文件中的数据?另外我怎么能移动整个桌子?
- android - 在 android 中为 pytorch 预处理视频