The Code A ,returns correct records
let query = """
SELECT id, a FROM ListenTable WHERE createTime BETWEEN '2025-02-12 00:00:00' AND
'2025-02-12 23:59:59';
"""
...
if sqlite3_prepare_v2(db, query, -1, &queryStatement, nil) == SQLITE_OK {
while sqlite3_step(queryStatement) == SQLITE_ROW {
let record = ListenRecord(
...
)
newRecords.append(record)
}
}
return newRecords
The Code B ,returns empty.
let query = """
SELECT id, a FROM ListenTable WHERE createTime BETWEEN ? AND ?;
"""
...
let startDate = "2025-02-12 00:00:00"
let endDate = "2025-02-12 23:59:59"
if sqlite3_prepare_v2(db, query, -1, &queryStatement, nil) == SQLITE_OK {
sqlite3_bind_text(queryStatement, 1, startDate, -1, nil)
sqlite3_bind_text(queryStatement, 2, endDate, -1, nil)
while sqlite3_step(queryStatement) == SQLITE_ROW {
let record = ListenRecord(
...
)
newRecords.append(record)
}
}
return newRecords
Is the code A not as same as code B? why is the return not same? I can't find what's the problem, thanks
Thank everyone! I fixed it by using
sqlite3_bind_text(queryStatement, 1, startDate.cString(using: .utf8), -1, nil)
replace
sqlite3_bind_text(queryStatement, 1, startDate, -1, nil)