[PHP] DataBase на ООП, как лучше написать? Недавно начал погружаться в ООП на php...
Встал вопрос, как лучше написать DataBase на ООП, чтобы было удобно и безопасно?
Буду благодарен, если есть готовое решение.
Желательно отдельные функции для Insert,updata,select,delete

21 Авг 2019 в 06:59
159 +1
0
Ответы
1

Для написания класса для работы с базой данных на ООП в PHP, можно использовать принципы инкапсуляции, наследования и полиморфизма. Ниже приведен пример простого класса DataBase, который содержит отдельные методы для выполнения операций Insert, Update, Select и Delete.

class Database {
private $host = 'localhost';
private $username = 'root';
private $password = 'password';
private $db_name = 'database';
private $conn;
public function __construct() {
$this->conn = new mysqli($this->host, $this->username, $this->password, $this->db_name);
if ($this->conn->connect_error) {
die("Connection failed: " . $this->conn->connect_error);
}
}
public function insert($table, $data) {
$columns = implode(",", array_keys($data));
$values = implode("','", array_values($data));
$sql = "INSERT INTO $table ($columns) VALUES ('$values')";
$result = $this->conn->query($sql);
return $result;
}
public function update($table, $data, $where) {
$set = '';
foreach($data as $key => $value) {
$set .= "$key = '$value',";
}
$set = rtrim($set, ',');
$sql = "UPDATE $table SET $set WHERE $where";
$result = $this->conn->query($sql);
return $result;
}
public function select($table, $columns = '*', $where = '') {
$sql = "SELECT $columns FROM $table";
if ($where) {
$sql .= " WHERE $where";
}
$result = $this->conn->query($sql);
return $result->fetch_all(MYSQLI_ASSOC);
}
public function delete($table, $where) {
$sql = "DELETE FROM $table WHERE $where";
$result = $this->conn->query($sql);
return $result;
}
public function __destruct() {
$this->conn->close();
}
}
// Пример использования
$db = new Database();
// Insert
$data = array('name' => 'John', 'email' => 'john@example.com');
$db->insert('users', $data);
// Update
$data = array('name' => 'Jane', 'email' => 'jane@example.com');
$db->update('users', $data, 'id = 1');
// Select
$users = $db->select('users', 'name,email', 'id = 1');
print_r($users);
// Delete
$db->delete('users', 'id = 1');

Этот пример класса Database содержит основные методы для выполнения операций с базой данных. Пожалуйста, убедитесь, что вы подставляете значения в запросы безопасным способом, чтобы избежать SQL инъекций.

Надеюсь, это поможет вам при работе с базой данных на ООП в PHP.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир