diff options
Diffstat (limited to 'src/database/insert_query.hpp')
-rw-r--r-- | src/database/insert_query.hpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/database/insert_query.hpp b/src/database/insert_query.hpp index 04c098c..e3a7e83 100644 --- a/src/database/insert_query.hpp +++ b/src/database/insert_query.hpp @@ -25,6 +25,18 @@ typename std::enable_if<N == sizeof...(T), void>::type update_autoincrement_id(std::tuple<T...>&, Statement&) {} +template <typename T> +std::string before_value() +{ + return {}; +} + +template <typename T> +std::string after_value() +{ + return {}; +} + struct InsertQuery: public Query { template <typename... T> @@ -73,7 +85,7 @@ struct InsertQuery: public Query template <typename... T> void insert_values(const std::tuple<T...>& columns) { - this->body += "VALUES ("; + this->body += " VALUES ("; this->insert_value(columns); this->body += ")"; } @@ -86,7 +98,9 @@ struct InsertQuery: public Query if (!std::is_same<ColumnType, Id>::value) { + this->body += before_value<ColumnType>(); this->body += "$" + std::to_string(index++); + this->body += after_value<ColumnType>(); if (N != sizeof...(T) - 1) this->body += ", "; } |