<?php
$dsn = require '.dbconfig.inc.php';
-$options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ];
-$Db = new PDO($dsn, NULL, NULL, $options);
+$Db = new DB($dsn);
+
+class DB
+{
+ public $dbh;
+
+ function __construct($config, $options = [])
+ {
+ $options += [
+ PDO::ATTR_ERRMODE => 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);
+ }
+}