Собственно сам класс:
class DB {
private $dbprefix;
private $mysqli;
private $connect = true;
function __construct() {
$config = new Config();
$this->dbprefix = $config->dbprefix;
if ($this->connect) {
$mysqli = new mysqli($config->host, $config->user, $config->password, $config->db);
$mysqli->set_charset("utf8");
if ($mysqli->connect_errno) {
echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
exit();
}
$this->mysqli = $mysqli;
$this->connect = false;
}
}
public function query($data) {
$data = preg_replace('/#_/i', $this->dbprefix, $data);
return $this->mysqli->query($data);
}
public function insert_query($name, $data) {
foreach($data as $key => $val){
$field .= '`'.$this->result()->real_escape_string($key).'`, ';
if (is_numeric($val)) {
$value .=' '.$this->result()->real_escape_string($val).', ';
} else {
$value .=' \''.$this->result()->real_escape_string($val).'\', ';
}
}
$name = preg_replace('/#_/i', $this->dbprefix, $name);
$name = $this->result()->real_escape_string($name);
$this->mysqli->query('INSERT INTO `'.$name.'` ('.rtrim($field, ', ').') VALUES ('.rtrim($value, ', ').')');
return $this->mysqli->insert_id;
}
public function result() {
return $this->mysqli;
}
}
Готовые решения не интересны, хочу изучить данный вопрос самостоятельно.
Вопросы:
1. Не создаёт ли такой класс несколько подключений к БД и если создаёт, как их предотвратить?
2. Данный функционал класса написан грамотно? (других функций для работы с бд мне ненужно, всё что нужно описано выше)