универсальный метод вставки для класса PDO

это мой метод ввода в PDO, он работает на 100%. этот метод «insert» принимает таблицу, столбец и значение, но я хочу сделать его универсальным. (я хочу вставить значения с именами столбцов или без них)

public function insert($table, $pair = array()){ try{ $Sql = "INSERT INTO $table ( "; $Sql .= implode(", ", array_keys($pair)); $Sql .= " )"; $Sql .= " VALUES ("; $Sql .= implode(", ", array_fill("0", count($pair), " ?")); $Sql .= " )"; $array = array_combine(array_keys(array_fill("1", count($pair), ":")), $pair); $ready = $this->conn->prepare($Sql); foreach($array as $key => $value) { $ready->bindValue($key, $value, PDO::PARAM_STR); } $ready->execute(); } catch(Exception $e){ $this->trace .= " • ". $e->getMessage(); } } $new = new community(); echo $new->insert("table", array("Col1" => "value1", "col1" => "value1"));