请谁能告诉我为什么我们在下面的第五个参数中写NULL

if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK)


提前致谢。

最佳答案

只要您的sql只有一个语句,就不需要使用第五个参数。当sql有多个语句时,您可以收到一个指向下一条语句开头的指针。
例如:

const char* sql =
  "DROP TABLE price_list;"
  "CREATE TABLE price_list ( item TEXT, price INTEGER)";
while ( *sql ) {
  sqlite3_stmt* statement;
  sqlite3_prepare_v2(db, sql, -1, &statement, &sql);
  sqlite_step(statement);
  sqlite_finalize(statement);
}

关于iphone - 为什么我们在sqlite3_prepare_v2()中使用NULL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11643325/

10-10 21:08