PHP somo la 95: Jinsi ya kutengeneza customer ORM
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.
1. Kuandaa Database Connection
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;
}
}
2. Kuunda Base Model Class
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);
}
}
Ufafanuzi wa Code:
Hapa tunatumia prepared statements ili kuhakikisha usalama wa SQL (kama kuepuka SQL injection), na pia tunatekeleza Object-Oriented Programming (OOP).
1. __construct($table)
public function __construct($table) {
$this->db = Database::getInstance()->getConnection();
$this->table = $table; // Dynamically set the table name
}
- __construct($table): Hii ni constructor ya class. Kila mara unapotengeneza instance ya class hii, constructor hii itaitwa. Inachukua parameter moja, $table, ambalo ni jina la table la MySQL unalotaka kufanya kazi nalo (kwa mfano, "users" au "customers").
- $this->db = Database::getInstance()->getConnection();: Hii inapata connection ya database kwa kutumia Database singleton pattern.
- $this->table = $table;: Hapa tunahifadhi jina la table ambalo limeletwa kwa constructor kwenye property ya class table.
2. create($data)
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();
}
- $columns = implode(", ", array_keys($data));: Hapa tunachukua keys za array ya $data, ambayo inawakilisha majina ya column kwenye database.
- $placeholders = implode(", ", array_fill(0, count($data), "?"));: Tunatengeneza placeholders kwa ajili ya prepared statements.
- $stmt = $this->db->prepare("INSERT INTO {$this->table} ($columns) VALUES ($placeholders)");: Hii inatengeneza prepared statement ya SQL.
- $stmt->bind_param(str_repeat("s", count($data)), ...array_values($data));: Inatenganisha values za $data na kuzifanya ziwe parameta ambazo zitashikiliwa na placeholders.
- return $stmt->execute();: Hatimaye, statement inatekelezwa kwa kutumia execute().
3. all()
public function all() {
$stmt ...Umeionaje Makala hii.. ?
Share On:
👉1 kitabu cha Simulizi 👉2 Kitau cha Fiqh 👉3 Sira ya Mtume Muhammad (s.a.w) 👉4 web hosting 👉5 Dua za Mitume na Manabii 👉6 Simulizi za Hadithi Audio
Post zinazofanana:
PHP - somo la 36: Jinsi ya ku upload taarifa za mafaili kwenye database kw akutumia PHP
katika somo hili utajfunza kukusanya taarifa za mafaili. kisha ku upload hayo mafaili. kisha kuandika hizo taarifa za mafaii kwenye database
Soma Zaidi...PHP somo la 87: Jinsi ya kuangalia error wakati wa ku decode na ku encode json data
Katika somo hili utakwenda kujifunza jisni ya kudhibiti error ambazo zinaweza kutokea wakati wa ku encode na ku decoe json data
Soma Zaidi...PHP - somo la 4: Aina za data zinazotumika kwenye PHP
Katika somo hili utakwenda kujifunza aina za data ambazo hutumika kwenye PHP
Soma Zaidi...PHP - somo la 10: Jinsi ya kundika condition statement if, ifelse na switch case
Katika somo hili utakwenda kujifunza kuhusu condition statements if, ifelse na switch case. Hata utajifunza jnsi ya kuziandika na zinavyofanya kazi
Soma Zaidi...PHP - somo la 43: Jinsi ya kutuma email kwa kutumia PHP
Katika somo hili utajifunza jinsi ya kutuma email kwa kutumia email() function ya PHP. Hii ni njia rahisi zaidi ya kutuma email. Ila hufanya kazi kwenye hosting.
Soma Zaidi...PHP - somo la 24: Jinsi ya ku upload file kwenye database na kulisoma kw akutumia php
Katika somo hili utajifnza jinsi ya ku upload file kwenye database. Kisha utajifunza jinsi ya kulisoma faili hilo kwa kutumia php
Soma Zaidi...