有人可以更多地了解这些功能:
sqlite3_reset();
sqlite3_clear_bindings()
我知道我可以使用 sqlite3_prepare()将sql字符串转换为引擎理解的本机字节代码。因此,每次使用时引擎都不必翻译它。我还可以参数化这样的预处理语句,然后使用 sqlite3_bind *()函数将值绑定到它。
我可以使用sqlite3_clear_bindings()为这些绑定参数指定NULL值。 从documentation开始,可以读取sqlite3_reset(),不破坏绑定,保留值并将对象置于初始状态。它究竟意味着什么? 特别是关于不破坏绑定的部分。
答案 0 :(得分:3)
sqlite3_reset
清除执行期间保留的预准备语句的状态。这将其设置回初始状态,从而“重置”。绑定保持完整。该声明可以重新执行。如果不重置它,当您尝试执行它时会收到错误。
sqlite3_clear_bindings
将清除绑定,但不会更改预准备语句中的状态。如果刚刚清除了绑定,则无法重新执行预准备语句。