diff options
| -rw-r--r-- | app/class/database.iface.php | 13 | ||||
| -rw-r--r-- | app/class/mysql.class.php | 63 | 
2 files changed, 76 insertions, 0 deletions
| diff --git a/app/class/database.iface.php b/app/class/database.iface.php new file mode 100644 index 0000000..dcd64ba --- /dev/null +++ b/app/class/database.iface.php @@ -0,0 +1,13 @@ +<?php + +/* + * Generic interface for the various database drivers Scrott may implement support for + */ +interface Database +{ +    function close(); +    function query($query); +    function esc($string); +} + +?> diff --git a/app/class/mysql.class.php b/app/class/mysql.class.php new file mode 100644 index 0000000..b08257f --- /dev/null +++ b/app/class/mysql.class.php @@ -0,0 +1,63 @@ +<?php + +require_once "class/database.iface.php"; + +/* + * MySQL support for Scrott + */ +class Mysql implements Database +{ +    /* +     * Constructor +     */ +    function __construct($host, $username, $password, $dbName) +    { +        $this->db = new mysqli($host, $username, $password, $dbName); + +        if ($this->db->connect_error) +            throw new Exception("Can not connect to Mysql database. Please check your Scrott configuration."); +    } + +    /* +     * Destructor +     */ +    function __destruct() +    { +        $this->close(); +    } + +    /* +     * Close connection to DB +     */ +    function close() +    { +        $this->db->close(); +    } + +    /* +     * Make a query of the database. Return data as an array of arrays +     */ +    function query($query) +    { +        $arr = array(); +        $res = $this->db->query($query); + +        if ($res === true || $res === false) +            return $arr; + +        foreach ($res as $r) +            $arr[] = $r->fetch_assoc(); + +        return $arr; +    } + +    /* +     * Escape a string for use in a query +     */ +    function esc($string) +    { +        return $this->db->real_escape_string($string); +    } +} + +?> | 
