Correct, it's one of my helper functions like: sqlite3_stmt *sqlite3_preparef_v2(sqlite3 *db, const char *fmt, ...) __attribute__ ((sentinel)); bool sqlite3_queryf(sqlite3 *db, const char *fmt, ...) __attribute__ ((sentinel)); They take multiple arguments and bind the parameters using a printf-style format string. It's super convenient when you only need to bind parameters once, and check all the return codes. The queryf function is handy for updates or deletes.