buildQueryArgs($data); $result = $this->query("SELECT $dataToGet FROM $table$str"); return $result; } /* Sets data to a database where $data["key"] = $data["value"]; @param $key string @param $value string @param $data array */ public function set(string $key, string $value, array $data) { $table = $data["table"]; unset($data["table"]); $str = $this->buildQueryArgs($data); return $this->query("UPDATE $table SET $key = '$value'$str"); } /* Inserts a row into the database @param $table string @param $data array */ public function insert(string $table, array $data) { return $this->query("INSERT INTO $table VALUES ('" . implode("', '", $data) . "')"); } /* Deletes a row from the database @param $table string @param $data array */ public function delete(string $table, array $data) { $str = $this->buildQueryArgs($data); return $this->query("DELETE FROM $table$str"); } /* Formats an SQL query from an array @param $data array @return string */ public function buildQueryArgs(array $data) : string { $str = " WHERE "; foreach($data as $k => $d) $str .= "$k = '$d' AND "; return strlen($str) !== 7 ? substr($str, 0, strlen($str) - 5) : ""; } /* Checks queries and return it. To set custom params/ @param $qry string @return SQLite3Result|bool */ public function query($qry) { // Server::getInstance()->getPluginManager()->getPlugin("HideAndSeek")->getLogger()->debug($qry); $res = parent::query($qry); if($res instanceof \SQLite3Result) self::setNumRows($res); return $res; } /* Sets a number of rows in of a query @param &$result \SQLite3Result */ protected static function setNumRows(\SQLite3Result &$result) { $n = 0; while($result->fetchArray()) $n++; $result->reset(); $result->num_rows = $n; } }