diff options
author | Malf Furious <m@lfurio.us> | 2015-12-17 00:39:54 -0500 |
---|---|---|
committer | Malf Furious <m@lfurio.us> | 2015-12-17 00:39:54 -0500 |
commit | bdc8790368e2f8b247c8492507d4083ddfbd61c1 (patch) | |
tree | 48a7d3033e7841ef2763edaa893b4def75e668bc | |
parent | 2dd0900cd5c2adb610fd35e10133dd9fc10ca0f9 (diff) | |
download | scrott-bdc8790368e2f8b247c8492507d4083ddfbd61c1.tar.gz scrott-bdc8790368e2f8b247c8492507d4083ddfbd61c1.zip |
+ Added generic database interface to use throughout the app since I'm planning on supporting multiple database engines
+ Defined interface for Mysql DBMS for Scrott
-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); + } +} + +?> |