高效管理資料庫操作對於 PHP 應用開發至關重要。 CRUD(建立、讀取、更新、刪除)是最常見的資料庫操作之一。採用物件導向程式設計 (OOP) 原則有助於讓您的程式碼更簡潔、更易於重複使用和擴充。將 MySQL 與 PHP 結合使用,還可以確保您的應用程式能夠有效率地處理資料儲存。
本部落格文章將逐步解說如何使用 OOP 和 MySQL 建立 PHP CRUD 應用程式。我們將遵循最佳實踐和設計模式來組織程式碼,使其既適合初學者,又足夠強大,可以用於更大的專案。
閱讀完本指南後,您將掌握使用 PHP 中的 OOP 原則處理資料庫的堅實基礎。
物件導向程式設計 (OOP) 是一種程式設計範式,它使用「物件」來組織程式碼。在 PHP 中,OOP 可讓您建立表示現實世界實體的類,使您的程式碼更模組化、更易於重複使用和管理。
在處理資料庫時,應用 OOP 原則意味著:
在開始編碼之前,讓我們先設定一個易於維護的資料夾結構。您的專案應如下整理:
<code>php-crud/ ├── config/ │ └── Database.php ├── controllers/ │ └── UserController.php ├── models/ │ └── User.php ├── views/ │ └── user_list.php ├── public/ │ └── index.php └── .gitignore</code>
讓我們從在 MySQL 中建立資料庫和 users 表開始。您可以執行以下 SQL 查詢來設定資料庫:
<code class="language-sql">CREATE DATABASE php_crud; USE php_crud; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );</code>
此表將儲存基本使用者訊息,例如姓名、電子郵件和建立日期。
我們已經設定了基本資料夾結構。以下是每個資料夾用途的細分:
讓我們從在 config/Database.php 建立一個資料庫連線類別開始:
<code>php-crud/ ├── config/ │ └── Database.php ├── controllers/ │ └── UserController.php ├── models/ │ └── User.php ├── views/ │ └── user_list.php ├── public/ │ └── index.php └── .gitignore</code>
此類建立與 MySQL 的 PDO 連接,並在您的專案中可重複使用。
讓我們建立一個用於處理使用者資料的模型。此類別將與 users 表互動並執行 CRUD 操作。
<code class="language-sql">CREATE DATABASE php_crud; USE php_crud; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );</code>
<code class="language-php"><?php namespace Config; use PDO; class Database { private $host = '127.0.0.1'; private $dbName = 'php_crud'; private $username = 'root'; private $password = ''; private $connection; public function connect() { try { $this->connection = new PDO( "mysql:host={$this->host};dbname={$this->dbName}", $this->username, $this->password ); $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return $this->connection; } catch (PDOException $e) { die("Database connection failed: " . $e->getMessage()); } } }</code>
<code class="language-php"><?php namespace Models; use Config\Database; class User { private $conn; public function __construct() { $database = new Database(); $this->conn = $database->connect(); } public function create($name, $email) { $sql = "INSERT INTO users (name, email) VALUES (:name, :email)"; $stmt = $this->conn->prepare($sql); $stmt->bindParam(':name', $name); $stmt->bindParam(':email', $email); return $stmt->execute(); } public function read() { $sql = "SELECT * FROM users"; $stmt = $this->conn->prepare($sql); $stmt->execute(); return $stmt->fetchAll(\PDO::FETCH_ASSOC); } public function update($id, $name, $email) { $sql = "UPDATE users SET name = :name, email = :email WHERE id = :id"; $stmt = $this->conn->prepare($sql); $stmt->bindParam(':name', $name); $stmt->bindParam(':email', $email); $stmt->bindParam(':id', $id); return $stmt->execute(); } public function delete($id) { $sql = "DELETE FROM users WHERE id = :id"; $stmt = $this->conn->prepare($sql); $stmt->bindParam(':id', $id); return $stmt->execute(); } }</code>
<code class="language-php"><?php namespace Controllers; use Models\User; class UserController { public function createUser($name, $email) { $user = new User(); return $user->create($name, $email); } public function getUsers() { $user = new User(); return $user->read(); } public function updateUser($id, $name, $email) { $user = new User(); return $user->update($id, $name, $email); } public function deleteUser($id) { $user = new User(); return $user->delete($id); } }</code>
透過遵循 OOP 原則並在 PHP 中應用最佳實踐,我們建立了一個簡單且可擴展的 CRUD 應用程式。這種方法使您可以輕鬆地使用新功能擴展項目或改進資料庫互動。
在本指南中,我們介紹了:
這種結構使您的 PHP 應用程式更簡潔、更模組化且更易於擴展。現在您可以使用這種方法建立更大、更複雜的應用程序,使用 OOP 和 MySQL。
祝您編碼愉快! ?
以上是使用 OOP 和 MySQL 建立 PHP CRUD 應用程式:最佳實務指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!