SQLite Forum

In C API, do prepared statements of simple inserts execute repeatedly even if not reset?
Note that neither an explicit nor automatic reset clears any bindings that you have made against the statement as these are not part of the "execution state" but are a separate construct associated with the statement itself (though there is a call to reset the bindings (sqlite3_clear_bindings) which will clear the bindings data associated with a statement context).

It is not necessary to re-bind unchanged bindings to a statement context as this data is not modified by the execution state of the statement itself.

sqlite3_finalize operates on a statement context and does a reset, clears the bindings, then free's the various memory structures associated with a statement and destroys the statement context.