summaryrefslogtreecommitdiffstats
path: root/app/class/mysql.class.php
diff options
context:
space:
mode:
authorMalf Furious <m@lfurio.us>2018-10-27 18:28:22 -0400
committerMalf Furious <m@lfurio.us>2018-10-27 18:28:22 -0400
commit0421aa1b60f4fe6bf140888159c58059c1013588 (patch)
treec3285276f6c53b6789e2f6dc82cb3b0fd17b38a4 /app/class/mysql.class.php
parent495157341d60522084dcc9f6219877b6ba497312 (diff)
parent6512655aee73d3d295daa4de0e4ef25c08cfec9e (diff)
downloadscrott-05af670f00a270ee69f487891741116ef5b82de8.tar.gz
scrott-05af670f00a270ee69f487891741116ef5b82de8.zip
Merge branch 'rel/v0.1'v0.1
Diffstat (limited to 'app/class/mysql.class.php')
-rw-r--r--app/class/mysql.class.php68
1 files changed, 68 insertions, 0 deletions
diff --git a/app/class/mysql.class.php b/app/class/mysql.class.php
new file mode 100644
index 0000000..57a9819
--- /dev/null
+++ b/app/class/mysql.class.php
@@ -0,0 +1,68 @@
+<?php
+
+/*
+ * SCROTT IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * For more information, please refer to UNLICENSE
+ */
+
+require_once "class/database.class.php";
+
+/*
+ * This class implements support for MySQL and MariaDB via PHP's mysqli
+ * driver.
+ */
+class mysql extends database
+{
+ private $db;
+
+ /*
+ * Constructor
+ */
+ public function __construct(string $host, string $uname, string $passwd, string $dbname)
+ {
+ $this->db = new mysqli($host, $uname, $passwd, $dbname);
+
+ if ($this->db->connect_error)
+ throw new Exception("Can not connect to MySQL database. Please check your configuration.");
+ }
+
+ /*
+ * Close connection to DB
+ */
+ protected function _close() : void
+ {
+ $this->db->close();
+ }
+
+ /*
+ * Make a query of the database. Return data as an array of arrays.
+ */
+ protected function _query(string $query) : array
+ {
+ $arr = array();
+ $res = $this->db->query($query);
+
+ if ($res === true || $res === false)
+ return $arr;
+
+ while (($arr[] = $res->fetch_assoc()));
+ return array_filter($arr, function ($val) { return !is_null($val); });
+ }
+
+ /*
+ * Escape a string for use in a query
+ */
+ protected function _esc(string $str) : string
+ {
+ return $this->db->real_escape_string($str);
+ }
+}
+
+?>