У меня странное чувство о sqlite3 параметров , которое я хотел бы раскрыть вам.
Это мой запрос и сообщение об ошибке:
#query
'SELECT id FROM ? WHERE key = ? AND (userid = '0' OR userid = ?) ORDER BY userid DESC LIMIT 1;'
#error message, fails when calling sqlite3_prepare()
error: 'near "?": syntax error'
В моем коде это выглядит так:
// Query is a helper class, at creation it does an sqlite3_preprare()
Query q("SELECT id FROM ? WHERE key = ? AND (userid = 0 OR userid = ?) ORDER BY userid DESC LIMIT 1;");
// bind arguments
q.bindString(1, _db_name.c_str() ); // class member, the table name
q.bindString(2, key.c_str()); // function argument (std::string)
q.bindInt (3, currentID); // function argument (int)
q.execute();
У меня такое ощущение, что я не могу использовать sqlite parameters для имени таблицы, но не могу найти подтверждение в Sqlite3 C API .
Знаете ли вы, что не так с моим запросом?
Нужно ли предварительно обрабатывать оператор SQL, чтобы включить имя таблицы перед подготовка запроса?