PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ, ]; $this->dbh = new PDO($config, NULL, NULL, $options); } function query($sql, $params = []) { $stmt = $this->dbh->prepare($sql); $stmt->execute($params); return $stmt; } function _value($val, &$params) { $params[] = $val; return '?'; } function insert($table, $row) { $params = []; $cols = []; foreach ($row as $col => $val) { $cols[] = $this->_value($val, $params); } $sql = sprintf('INSERT INTO %s (%s) VALUES (%s)', '"'.$table.'"', implode(', ', array_keys($row)), implode(', ', $cols) ); return $this->query($sql, $params); } }