Я сейчас работаю на c ++ с SQLite3, все работает нормально, я могу добавить что-то в таблицу, но когда я делаю, SELECT * FROM myTable;
возвращает мне (null)
... переменная rc
из
sqlite3 *db;
char *zErrMsg;
int rc;
std::string sql = "SELECT * FROM users;";
char csql[sql.size()+1];
strcpy(csql, csql.c_str()); // String to char*
rc = sqlite3_exec(db, csql, callback, 0, &zErrMsg); // rc = 21 Error
...
равно 21 .. В соответствии с https://www.sqlite.org/c3ref/c_abort.html это означает, что я "использовал библиотеку неправильно" .. Затем я проверил с помощью python и онлайн sql на тот же файл .db
, и он выводит мне, чтоэто хорошо ..
Если кто-нибудь может мне помочь и объяснить мне, что я сделал не так и как это исправить?Большое спасибо!
ps: вот моя функция addUser на случай, если проблема в добавлении ..
bool addUser(std::string username, std::string password){
char cpassword[password.size()+1];
strcpy(cpassword, password.c_str());
std::string shashedP = hashPass(cpassword); // hashPass returns std::string
std::string sql = "INSERT INTO users (username, passw) VALUES ('" + username + "', " + shashedP + ");";
char csql[sql.size()+1];
strcpy(csql, sql.c_str());
rc = sqlite3_exec(db, csql, callback, 0, &zErrMsg); // rc = SQLITE3_OK = 0 everytime
...