无法在sqlite3中获取绑定参数名称

时间:2017-07-07 21:43:08

标签: swift sqlite

我正在尝试获取参数的名称,但出现了问题。

代码:(重新产生问题的最少代码)

var db: OpaquePointer? = nil
var rc: Int32 = 0
rc = sqlite3_open("test.db", &self.db)
if rc != SQLITE_OK
{
    print("cant open")
}
var statement: OpaquePointer? = nil
let sql = "insert into testtable values(?123);"
rc = sqlite3_prepare_v2(db, sql, -1, &statement, nil)
if rc != SQLITE_OK
{
    print("cant prepare")
}
print(String(cString: sqlite3_bind_parameter_name(statement, 1))) // returns nil
sqlite3_finalize(statement)
sqlite3_close(db)

如果我使用@AAA:AAA$AAA,我会获得参数名称,但如果我使用nil?123格式,我会获得?NNN )。但根据website,我应该?123String

我做错了什么?

谢谢。

1 个答案:

答案 0 :(得分:2)

指定123时,123是索引。因此,您需要将1而不是sqlite3_bind_parameter_name传递给sqlite3_bind_xxx

您可以在{{1}}功能的documentation中查看更多内容。