[PHP] DataBase на ООП, как лучше написать? Недавно начал погружаться в ООП на php... Встал вопрос, как лучше написать DataBase на ООП, чтобы было удобно и безопасно? Буду благодарен, если есть готовое решение. Желательно отдельные функции для Insert,updata,select,delete
Для написания класса для работы с базой данных на ООП в 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.
Для написания класса для работы с базой данных на ООП в 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.