public function insert(Connection $connection, $tableName, array $data) { $sql = 'INSERT INTO ' . $this->quoteName($tableName) . ''; $sql .= ' ("' . implode('", "', array_keys($data)) . '")'; $sql .= ' VALUES'; $values = []; foreach ($data as $key => $val) { $values[':' . $key] = $val; } $sql .= ' (' . implode(', ', array_keys($values)) . ')'; $connection->execute($sql, $values); return $connection->lastInsertId(); }