【发布时间】:2009-02-24 09:19:02
【问题描述】:
我正在编写一些使用 sqlite3 库的 c++ 代码。我正在使用一个准备好的语句,我在运行时将一个变量绑定到该语句。
我如何检查绑定后语句中的 SQL 查询?
例如,下面的代码不返回一行。使用预制字符串和 sqlite3_exec 时,我得到了我期望的结果。
sqlite3_stmt *statement;
const char *query = "SELECT * FROM foo WHERE (name='?');";
sqlite3_prepare_v2(db, query, strlen(query), &statemtnt, NULL);
sqlite3_bind_text(statement, 1, "bar", -1, SQLITE3_STATIC);
int result = sqlite3_step(statement);
// expected: result = SQLITE_ROW
// actual: result = SQLITE_DONE
编辑:正如费迪南德在下面所说,上面查询中的问题是 ? 周围的引号。但是,对于将来,我仍然想知道如何检查 sqlite3_stmt 以了解将要执行的实际查询。
【问题讨论】: