Katika somo hili uttakwend akujifunz ajinsi ambavyo utaweza kutengeneza simple ORM yakwako mwenyewe
PHP somo la 95: Jinsi ya kutengeneza customer ORM
Katika somo hili utajifunza jinsi ya kutengeneza ORM ya msingi kwa kutumia PHP na MySQL, ambayo itakuwezesha kufanya operesheni za CRUD (Create, Read, Update, Delete) kwa urahisi.
Kama ilivyo kwenye mfano wa awali, tunahitaji class ya Database ambayo itashughulikia connection na MySQL. Hii itakuwa ni Singleton pattern kama ilivyokuwa awali:
class Database {
private static $instance = null;
private $conn;
private function __construct() {
$this->conn = new mysqli("localhost", "root", "", "shop");
if ($this->conn->connect_error) {
die("Connection failed: " . $this->conn->connect_error);
}
}
public static function getInstance() {
if (!self::$instance) {
self::$instance = new Database();
}
return self::$instance;
}
public function getConnection() {
return $this->conn;
}
}
Hapa tunaunda class Model, ambayo inashughulikia CRUD operations kwa kutumia prepared statements ili kuepuka SQL Injection. Class hii ina methods za kufanya kazi na tables kwa kutumia jina la table kama parameter:
class Model {
protected $db;
protected $table;
public function __construct($table) {
$this->db = Database::getInstance()->getConnection();
$this->table = $table; // Dynamically set the table name
}
public function create($data) {
$columns = implode(", ", array_keys($data));
$placeholders = implode(", ", array_fill(0, count($data), "?"));
$stmt = $this->db->prepare("INSERT INTO {$this->table} ($columns) VALUES ($placeholders)");
$stmt->bind_param(str_repeat("s", count($data)), ...array_values($data));
return $stmt->execute();
}
public function all() {
$stmt = $this->db->prepare("SELECT * FROM {$this->table}");
$stmt->execute();
return $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
}
}
Hapa tunatumia prepared statements ili kuhakikisha usalama wa SQL (kama kuepuka SQL injection), na pia tunatekeleza Object-Oriented Programming (OOP).
public function __construct($table) {
$this->db = Database::getInstance()->getConnection();
$this->table = $table; // Dynamically set the table name
}
public function create($data) {
$columns = implode(", ", array_keys($data));
$placeholders = implode(", ", array_fill(0, count($data), "?"));
$stmt = $this->db->prepare("INSERT INTO {$this->table} ($columns) VALUES ($placeholders)");
$stmt->bind_param(str_repeat("s", count($data)), ...array_values($data));
return $stmt->execute();
}
Jiunge nasi WhatsApp kupata update zetu
Umeionaje Makala hii.. ?
Katika project hii utakwenda kujifunza jinsi ya kufanya CRUDE operation kwa kutumia PHP OOP na MySQL database.
Soma Zaidi...Katika course hii utakwenda kujifundisha jinsi ya lutengeneza blog kutoka mwanzo hadi mwisho.
Soma Zaidi...HApa utakwenda kujifunza sasa namna ya kuzisoma post kutoka kwenye blog
Soma Zaidi...Katika somo hili utakwenda kujifunza concept ya interface na concept ya polymorphism kwenye PHP OOP.
Soma Zaidi...Katika somo hili utakwenda kujifunza jinsi ya ktumia baadhi ya function za php
Soma Zaidi...Katika somo hili utakwenda kujifunza kuhusu Aina za cache header
Soma Zaidi...Katika somo hili utakwenda kujifunza concept mpya ya abstract class na abstract method kwenye OOP.
Soma Zaidi...Katika somo hili utakwenda kujifunza concept ya traits kwenye OOP. hii itakusaidia ku solve baadhi ya changamoto zinazotokana na inheritance
Soma Zaidi...hapa utawenda utuma database wa ajl ya utengeneza maudhu ya PDF.
Soma Zaidi...Katika somo hili utakwenda kujifunza jinsi ya kutumia constatnt kwenye class.
Soma Zaidi...