<?php
define("DBROOT", __DIR__ . "/../db/");
define("DATABASE", "sqlite:" . DBROOT . "bmo.sqlite");

function check_libs()
{
    if (class_exists('PDO') && in_array("sqlite", pdo_drivers())) {
        return true;
    } else {
        return false;
    }
}

function connect_database($dsn)
{
    try {
        $db = new PDO($dsn);
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $db;
    } catch (PDOException $e) {
        echo "DSN: $dsn";
        echo "<p style=\"color: red;\">$e</p>";
        return null;
    }
}

function create_statement($query)
{
    if (check_libs()) {
        $db = connect_database(DATABASE);
        if ($db != null) {
            return $db->prepare($query);
        } else {
            echo "ERROR: Failed to get the requested database.";
        }
    } else {
        echo "ERROR: The sqlite PDO drive is disabled.";
    }
}

function search_database($query, $params)
{
    $stmt = create_statement($query);
    $stmt->execute($params);
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

// Remove obsolete function
function get_objects($category)
{
    return search_database("SELECT * FROM Object WHERE category = ?", [$category]);
}

function get_page($id)
{
    $result = search_database("SELECT * FROM Article WHERE id = ?", [$id]);
    // There can only be one.
    return $result[0];
}
