void fuh::write_detail(const std::string& name, const std::string& detail, const std::string& value) { try { // Check if we do already have a row for this user in the extra table if(!extra_row_exists(name)) { // If not create the row db_query("INSERT INTO " + db_extra_table_ + " VALUES('" + name + "','" + value + "','0')"); } db_query("UPDATE " + db_extra_table_ + " SET " + detail + "='" + value + "' WHERE UPPER(username)=UPPER('" + name + "')"); } catch (error& e) { ERR_UH << "Could not set detail for user '" << name << "': " << e.message << std::endl; } }
void fuh::write_detail(const std::string& name, const std::string& detail, T&& value) { try { // Check if we do already have a row for this user in the extra table if(!extra_row_exists(name)) { // If not create the row prepared_statement<void>("INSERT INTO `" + db_extra_table_ + "` VALUES(?,?,'0')", name, std::forward<T>(value)); } prepared_statement<void>("UPDATE `" + db_extra_table_ + "` SET " + detail + "=? WHERE UPPER(username)=UPPER(?)", std::forward<T>(value), name); } catch (const sql_error& e) { ERR_UH << "Could not set detail for user '" << name << "': " << e.message << std::endl; } }
std::string fuh::get_writable_detail_for_user(const std::string& name, const std::string& detail) { if(!extra_row_exists(name)) return ""; return db_query_to_string("SELECT " + detail + " FROM " + db_extra_table_ + " WHERE UPPER(username)=UPPER('" + name + "')"); }
T fuh::get_writable_detail_for_user(const std::string& name, const std::string& detail) { if(!extra_row_exists(name)) throw sql_error("row doesn't exist"); return prepared_statement<T>( "SELECT `" + detail + "` FROM `" + db_extra_table_ + "` WHERE UPPER(username)=UPPER(?)", name); }