2 $dsn = require '.dbconfig.inc.php';
9 function __construct($config, $options = [])
12 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
13 PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
15 $this->dbh = new PDO($config, NULL, NULL, $options);
18 function query($sql, $params = [])
20 $stmt = $this->dbh->prepare($sql);
21 $stmt->execute($params);
25 function _value($val, &$params)
28 $sql = array_shift($val);
29 $params = array_merge($params, $val);
37 function set($table, $row, $filter = NULL)
40 if (is_null($filter)) {
42 foreach ($row as $col => $val) {
43 $cols[] = $this->_value($val, $params);
45 $sql = sprintf('INSERT INTO %s (%s) VALUES (%s)',
47 implode(', ', array_keys($row)),
52 $sql = 'UPDATE "'.$table.'"';
54 foreach ($row as $col => $val) {
55 $cols[] = $col . ' = ' . $this->_value($val, $params);
58 $sql .= ' SET ' . implode(', ', $cols);
59 if (is_array($filter)) {
60 $sql .= ' WHERE ' . array_shift($filter);
61 $params = array_merge($params, $filter);
64 $sql .= ' ' . $filter;
67 return $this->query($sql, $params);