データベース操作を効率的に管理することは、PHP アプリケーション開発にとって非常に重要です。 CRUD (作成、読み取り、更新、削除) は、最も一般的なデータベース操作の 1 つです。オブジェクト指向プログラミング (OOP) の原則を採用すると、コードがよりシンプルになり、再利用および拡張が容易になります。 PHP で MySQL を使用すると、アプリケーションがデータ ストレージを効率的に処理できるようになります。
このブログ投稿では、OOP と MySQL を使用して PHP CRUD アプリケーション を構築する方法を説明します。ベスト プラクティスとデザイン パターンに従ってコードを整理し、初心者向けでありながら大規模なプロジェクトでも使用できる十分強力なコードになるようにします。
このガイドを読むと、PHP で OOP 原則を使用してデータベースを操作するための強固な基盤が得られます。
目次
- PHP における OOP の重要性
- プロジェクト設定
- データベースの作成
- フォルダー構造
- データベースに接続します
- CRUD オペレーションを作成する
- 作成
- 読む
- アップデート
- 削除
- 概要
1. PHP における OOP の重要性
オブジェクト指向プログラミング (OOP) は、「オブジェクト」を使用してコードを編成するプログラミング パラダイムです。 PHP では、OOP を使用して現実世界のエンティティを表すクラスを作成できるため、コードがよりモジュール化され、再利用および管理が容易になります。
データベースを操作するときに OOP 原則を適用することは、次のことを意味します:
- 懸念事項の分離: データベース ロジックは、残りのアプリケーション ロジックから分離されたクラスにカプセル化されます。
- 再利用性: アプリケーションの複数の部分でデータベース クラスを再利用できます。
- 保守性: アプリケーションが成長するにつれて、コードの更新と拡張が容易になります。
2. プロジェクトの設定
コーディングを始める前に、保守しやすいフォルダー構造を設定しましょう。プロジェクトは次のように編成する必要があります:
<code>php-crud/ ├── config/ │ └── Database.php ├── controllers/ │ └── UserController.php ├── models/ │ └── User.php ├── views/ │ └── user_list.php ├── public/ │ └── index.php └── .gitignore</code>
- config/Database.php: データベース接続ロジックが含まれます。
- controllers/UserController.php: CRUD 操作を処理し、モデルと通信します。
- models/User.php: MySQL の users テーブルと対話するためのロジックが含まれています。
- views/user_list.php: ユーザーデータを表形式で表示します。
- public/index.php: アプリケーションのエントリ ポイント。
3. データベースを作成します
まず、MySQL でデータベースとユーザー テーブルを作成しましょう。次の 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 );
このテーブルには、名前、電子メール、作成日などの基本的なユーザー情報が保存されます。
4. フォルダー構造
基本的なフォルダー構造を設定しました。各フォルダーの機能の内訳は次のとおりです:
- config/: データベース構成と接続ロジックが含まれます。
- controllers/: リクエストを処理し、モデル内の対応するメソッドを呼び出します。
- models/: ビジネス ロジックとデータベースの相互作用を表します。
- views/: データをユーザーに表示します。
- public/: パブリック フォルダーには、アプリケーションへのエントリ ポイントとして機能する、index.php ファイルが含まれています。
5. データベースに接続します
まず、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 接続を作成し、プロジェクトで再利用できます。
6. CRUD オペレーションを作成します
ユーザーデータを処理するためのモデルを作成しましょう。このクラスは、users テーブルと対話し、CRUD 操作を実行します。
モデルの作成 (User.php)
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 );
コントローラーの作成 (UserController.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()); } } }
ビューの作成 (user_list.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(); } }
エントリポイント (index.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); } }
概要
OOP の原則に従い、PHP のベスト プラクティスを適用することで、シンプルでスケーラブルな CRUD アプリケーションを構築しました。このアプローチにより、新しい機能でプロジェクトを簡単に拡張したり、データベースの対話を改善したりできます。
このガイドでは以下について説明します:
- シンプルで管理しやすいフォルダー構造。
- MySQL 接続用の再利用可能なデータベース クラス。
- すべての CRUD 操作をカプセル化するユーザー モデル。
- ビジネス ロジックを処理するための UserController。
この構造により、PHP アプリケーションがよりクリーンになり、よりモジュール化され、拡張が容易になります。このアプローチを使用して、OOP と MySQL を使用して大規模で複雑なアプリケーションを構築できるようになりました。
コーディングを楽しんでください! ?
以上がOOP と MySQL を使用した PHP CRUD アプリケーションの構築: ベスト プラクティス ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

MySQLのパフォーマンスを効果的に監視する方法は? MySqladmin、ShowGlobalStatus、PerconAmonitoring and Management(PMM)、MySQL EnterpriseMonitorなどのツールを使用します。 1. mysqladminを使用して、接続の数を表示します。 2。showglobalstatusを使用して、クエリ番号を表示します。 3.PMMは、詳細なパフォーマンスデータとグラフィカルインターフェイスを提供します。 4.mysqlenterprisemonitorは、豊富な監視機能とアラームメカニズムを提供します。

MySQLとSQLServerの違いは次のとおりです。1)MySQLはオープンソースであり、Webおよび埋め込みシステムに適しています。2)SQLServerはMicrosoftの商用製品であり、エンタープライズレベルのアプリケーションに適しています。ストレージエンジン、パフォーマンスの最適化、アプリケーションシナリオの2つには大きな違いがあります。選択するときは、プロジェクトのサイズと将来のスケーラビリティを考慮する必要があります。

高可用性、高度なセキュリティ、優れた統合を必要とするエンタープライズレベルのアプリケーションシナリオでは、MySQLの代わりにSQLServerを選択する必要があります。 1)SQLServerは、高可用性や高度なセキュリティなどのエンタープライズレベルの機能を提供します。 2)VisualStudioやPowerbiなどのMicrosoftエコシステムと密接に統合されています。 3)SQLSERVERは、パフォーマンスの最適化に優れた機能を果たし、メモリが最適化されたテーブルと列ストレージインデックスをサポートします。

mysqlManagesCharacterSetSetSetsAndCollations ByUSINGUTF-8ASTHEDEDEFAULT、CONFIGURATIONATDATABASE、TABLE、ANDCOLUMNLEVELS、ANDREQUIRINGCAREACTERSETANDCOLLATIONSFORADABASE.2

MySQLトリガーは、特定のデータ操作が実行されたときに一連の操作を実行するために使用されるテーブルに関連付けられた自動的に実行されたストアドプロシージャです。 1)定義と機能のトリガー:データ検証、ロギングなどに使用。2)動作原則:それは前後に分割され、行レベルのトリガーをサポートします。 3)使用例:給与の変更を記録したり、在庫を更新したりするために使用できます。 4)デバッグスキル:ShowTriggersとShowCreatetriggerコマンドを使用します。 5)パフォーマンスの最適化:複雑な操作を避け、インデックスを使用し、トランザクションを管理します。

MySQLでユーザーアカウントを作成および管理する手順は次のとおりです。1。ユーザーの作成:createUser'newuser '@' localhost'identifidedby'password 'を使用します。 2。許可を割り当てる:grantselect、insert、updateonmydatabase.to'newuser'@'localhost 'を使用します。 3.許可エラーを修正:Revokeallprivilegesonmydatabase.from'newuser'@'localhost 'を使用します。次に、許可を再割り当てします。 4。最適化権限:Showgraを使用します

MySQLは、迅速な開発や中小規模のアプリケーションに適していますが、Oracleは大規模な企業や高可用性のニーズに適しています。 1)MySQLはオープンソースで使いやすく、Webアプリケーションや中小企業に適しています。 2)Oracleは強力で、大企業や政府機関に適しています。 3)MySQLはさまざまなストレージエンジンをサポートし、Oracleは豊富なエンタープライズレベルの機能を提供します。

他のリレーショナルデータベースと比較したMySQLの欠点には次のものがあります。1。パフォーマンスの問題:大規模なデータを処理する際にボトルネックに遭遇する可能性があり、PostgreSQLは複雑なクエリとビッグデータ処理でより良いパフォーマンスを発揮します。 2。スケーラビリティ:水平スケーリング能力は、Google SpannerやAmazon Auroraほど良くありません。 3。機能的な制限:高度な機能におけるPostgreSQLやOracleほど良くないため、一部の関数では、より多くのカスタムコードとメンテナンスが必要です。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

Dreamweaver Mac版
ビジュアル Web 開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
