lua_sql_builder/mysql/
insert.rs1pub struct Insert<'a> {
2 table: &'a str,
3 values: Vec<[&'a str; 2]>,
4}
5
6#[allow(dead_code)]
7impl<'a> Insert<'a> {
8 pub fn new(table: &'a str) -> Insert<'a> {
9 Insert {
10 table,
11 values: vec![],
12 }
13 }
14
15 pub fn values(&mut self, values: Vec<[&'a str; 2]>) {
16 self.values = values;
17 }
18
19 pub fn build(&self) -> String {
20 let mut statement = "INSERT INTO".to_string();
21
22 statement.push_str(&format!(" {} ", self.table));
23
24 let mut columns = String::new();
25 let mut values = String::new();
26
27 for column in &self.values {
28 columns.push_str(&format!("{},", column[0]));
29
30 if column[1].parse::<f64>().is_ok() {
31 values.push_str(&format!("{},", column[1]));
32 } else {
33 values.push_str(&format!("'{}',", column[1]));
34 }
35 }
36 columns.pop();
37 values.pop();
38
39 statement.push_str(&format!("({}) VALUES ({})", columns, values));
40 statement = statement.trim().to_string() + ";";
41 statement
42 }
43}