繁体   English   中英

如何使用swift将行插入SQLITE表中?

[英]How do you insert a row into a SQLITE table using swift?

我有一个功能只是为了测试是否可以在Sqlite数据库的特定表中插入一行,但是由于某种原因,它不会插入并打印“无法插入行”。 谁能给我关于如何使用swift将数据插入表的任何建议? 谢谢。

let insertStatementString = "INSERT INTO bookmarks (id,title,content,locationId,sessionDate,sessionOrder, timeStart, timeEnd, sessionType,speakerId) VALUES (?,?,?,?,?,?,?,?,?,?);"

    func insertTestRow(){
        var insertStatement: OpaquePointer? = nil

        // 1
        if sqlite3_prepare_v2(mySQLDB, insertStatementString, -1, &insertStatement, nil) == SQLITE_OK {
          let id: NSString = "ay3"
          let title: NSString = "Ben"
         let content: NSString = "Meeting"
            let locationId: NSString = "classroom"
            let sessionDate: NSString = "2019"
            let sessionOrder: Int32 = 1
            let timeStart: NSString = "9am"
            let timeEnd: NSString = "10am"
            let sessionType: NSString = "Lesson"
            let speakerId: NSString = "bm3"



          // 2
            sqlite3_bind_text(insertStatement, 1, id.utf8String, -1, nil)
          // 3
          sqlite3_bind_text(insertStatement, 2, title.utf8String, -1, nil)
            sqlite3_bind_text(insertStatement, 3, content.utf8String, -1, nil)
            sqlite3_bind_text(insertStatement, 4, locationId.utf8String, -1, nil)
            sqlite3_bind_text(insertStatement, 5, sessionDate.utf8String, -1, nil)
            sqlite3_bind_int(insertStatement, 6, sessionOrder)
            sqlite3_bind_text(insertStatement, 7, timeStart.utf8String, -1, nil)
            sqlite3_bind_text(insertStatement, 8, timeEnd.utf8String, -1, nil)
            sqlite3_bind_text(insertStatement, 9, sessionType.utf8String, -1, nil)
            sqlite3_bind_text(insertStatement, 10, speakerId.utf8String, -1, nil)

          // 4
          if sqlite3_step(insertStatement) == SQLITE_DONE {
            print("Successfully inserted row.")
          } else {
            print("Could not insert row.")
          }
        } else {
          print("INSERT statement could not be prepared.")
        }
        // 5
        sqlite3_finalize(insertStatement)

    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM