-$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 insert($table, $row)
+ {
+ $sql = sprintf('INSERT INTO %s (%s) VALUES (%s)',
+ '"'.$table.'"',
+ implode(', ', array_keys($row)),
+ implode(', ', array_fill(0, count($row), '?'))
+ );
+ return $this->query($sql, array_values($row));
+ }
+}