0
の場合sqliteデータベースからデータを取得するプログラムを作成すると、sqlite cliでまったく同じクエリが返されても、結果は返されません。SqliteからCへの結果が返されないplain 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
最後に私がそれらを取り除いたときに何かを壊して、私はそれらを残すことに決めました –
うわー、彼は正しかった...最後に私はそれらの引用符を削除した私は何かを壊した奇妙な原因です。質問を追加して、私はそれをチェックします。ありがとうございました:) –