Mysql Swift SQLITE3插入/选择问题
我花了好几天的时间试图弄明白为什么使用Swift的slqlite3要么插入一个缺少最后一个字符的字符串,要么全部为空。在线研究也证明了自己是一场失败;我无法理解,按照以下标准程序: 打开与数据库的连接。 准备语句并绑定变量。 执行语句并完成它。 关闭与数据库的连接。 注:这是根据Apress开始使用Swift book开发iPhone 有没有人知道为什么字符串没有正确插入,或者在选择过程中出现了问题?任何帮助都将不胜感激 我的申请中使用的代码如下: 假设已经创建了必要的变量Mysql Swift SQLITE3插入/选择问题,mysql,xcode,string,swift,sqlite,Mysql,Xcode,String,Swift,Sqlite,我花了好几天的时间试图弄明白为什么使用Swift的slqlite3要么插入一个缺少最后一个字符的字符串,要么全部为空。在线研究也证明了自己是一场失败;我无法理解,按照以下标准程序: 打开与数据库的连接。 准备语句并绑定变量。 执行语句并完成它。 关闭与数据库的连接。 注:这是根据Apress开始使用Swift book开发iPhone 有没有人知道为什么字符串没有正确插入,或者在选择过程中出现了问题?任何帮助都将不胜感激 我的申请中使用的代码如下: 假设已经创建了必要的变量 var databa
var database:COpaquePointer = nil
var result: Int32 = Int32()
func create () {
connect()
let createSQL = "CREATE TABLE IF NOT EXISTS artists (id INTEGER PRIMARY KEY AUTOINCREMENT, title VARCHAR(100) NOT NULL, last_updated INTEGER, created INTEGER);"
var errMsg:UnsafeMutablePointer<Int8> = nil
if sqlite3_exec(database, createSQL, nil, nil, &errMsg) != SQLITE_OK { println(errMsg) }
disconnect()
}
func connect () -> Bool { println("Connected to the db."); return sqlite3_open(path, &database) == SQLITE_OK }
尝试更改“创建表”设置 将VARCHAR100替换为文本。。。不确定这是否能解决问题,但值得一试
func addArtist (title: String) -> Int32 {
connect()
var newItemId: Int32 = 0
let query = "INSERT INTO artists (title, last_updated, created) VALUES (?, ?, ?);"
var statement:COpaquePointer = nil
if sqlite3_prepare_v2(database, query, -1, &statement, nil) == SQLITE_OK {
sqlite3_bind_text(statement, 1, title, -1, nil)
sqlite3_bind_int(statement, 2, 0)
sqlite3_bind_int(statement, 3, Int32(NSDate().timeIntervalSince1970))
}
if sqlite3_step(statement) == SQLITE_DONE { newItemId = Int32(sqlite3_last_insert_rowid(database)) }
sqlite3_finalize(statement)
disconnect()
return newItemId
}