0
編寫一個程序從sqlite數據庫檢索數據不會返回任何結果,儘管在sqlite cli中返回預期結果的查詢完全相同。Sqlite通過C沒有返回的結果,其中普通的sqlite是
#include <stdio.h>
#include <sqlite3.h>
sqlite3 * db;
sqlite3_stmt * locationgetint;
int locationInt(char * string){
sqlite3_bind_text(locationgetint,1,string,-1,SQLITE_STATIC);
sqlite3_step(locationgetint);
int output = sqlite3_column_int(locationgetint,0);
sqlite3_clear_bindings(locationgetint);
sqlite3_reset(locationgetint);
return output;
}
int main(){
sqlite3_open("db.sqlite3",&db);
sqlite3_prepare_v2(db,"SELECT id FROM pfs WHERE name='?';",-1,&locationgetint,0);
printf("%d\n",locationInt("Milky Way")); // Prints 0
return 0;
}
但SQLite的CLI版本:
sqlite> SELECT id FROM pfs WHERE name='Milky Way';
625
sqlite>
我認爲你不需要SQL語句中的引號,即'WHERE name =?'。 – Sjoerd 2012-02-08 12:14:56
上次我把它們去掉了,我弄壞了一些東西,所以我決定把它們留在 – 2012-02-08 12:18:47
哇,他是對的......上次我刪除那些引發了我的東西的引號是奇怪的原因。添加一個問題,我會檢查它謝謝sjoerd :) – 2012-02-08 12:24:18