C++ 创建SQLite类

C++ 创建SQLite类,c++,class,sqlite,C++,Class,Sqlite,很抱歉,我显示了太多的代码行,但我只是有一个小问题 查看代码文件,您将看到我通过注释[1]和[2]标记的两个区域(可能需要[3]) 当我运行程序时,因为这是一个控制台程序,所以屏幕上会出现如下内容: Befor callback: 0 After callback: 0 回调后应该是:99,这就是我需要的 我的问题是为什么修改变量后,iResult变量不改变 更新1 回调函数的第一个绘图指向(此)指针(在[3]中)指向的位置 谢谢大家。当您调用run\u query执行查询时,它将sqlit

很抱歉,我显示了太多的代码行,但我只是有一个小问题

查看代码文件,您将看到我通过注释[1]和[2]标记的两个区域(可能需要[3])

当我运行程序时,因为这是一个控制台程序,所以屏幕上会出现如下内容:

Befor callback: 0 
After callback: 0
回调后应该是
:99
,这就是我需要的

我的问题是为什么修改变量后,
iResult
变量不改变

更新1 回调函数的第一个绘图指向(此)指针(在[3]中)指向的位置


谢谢大家。

当您调用
run\u query
执行查询时,它将
sqlite3\u exec
调用的结果分配给
iResult
。这将用查询结果覆盖99,结果为0。

这几乎是这段代码的所有不优化之处。如果您正在做一些简单的事情,sonsider可以使用一个可用的包装器,例如。还有更多的低水平的

尝试先阅读干净的代码,然后再阅读

这也不是“”的好处。你真的想用C++做吗?< /P>
然后,您也在做一些危险的事情—您正在通过不使用从字符串组装查询。

您确定回调函数确实被调用了吗?您是否尝试使用调试器逐步完成此操作?是的,我尝试了很多次。调用回调函数。我也曾使用过一步一步地运行,但我无法找出问题所在。这可能是答案,但它是否有助于学习如何编写好代码,并防止出现问题?谢谢。你能告诉我你是怎么发现的吗?黑暗。对不起,我应该说。我用调试器来运行你的程序。看到在回调中正确设置了99值,并且对象指针是相同的。这意味着该值正在以某种方式倒退。这要么是写入不应该写入的内存(如缓冲区溢出),要么是实际将值设置回原来的值。幸运的是,这是后者——我刚刚通过sqlite从回调中走出来,直到我来到
run\u query
函数。如果这不起作用,我将在值上设置一个数据断点,以查看它何时变回,您应该注意@DmitryLedentsov post中的最后一项-尝试忽略屈尊语气-使用字符串附加函数组成insert SQL字符串是非常危险的,因为这意味着任何可以输入您的输入的人都可以获取数据库中的任何内容。在谷歌中查找SQL注入。我真的想用C++来做它,因为我喜欢C++。我决定删除所有代码并重写它们,尽量使其更干净。非常感谢。