ロボットから自転車までの多くの例は、OOP の simple 説明として役立ちます。ただし、特にプログラマー向けに、実際のシナリオで OOP がどのように機能するかを示すことを好みます。実際の例は、MySQL CRUD (作成、読み取り、更新、および削除) クラスの作成です。このようにして、プログラマは、データベースの設計に関係なく、プロジェクト内のエントリを効果的に管理できます。
要件を決定したら、クラスの基本構造の作成は比較的簡単です。まず、基本的な MySQL 操作を実行できることを確認する必要があります。これを実現するには、次の関数を実装する必要があります:
、
$db_pass、$db_name
、$con ## などのさまざまなプライベート プロパティを定義します。 #。このクラスは、データベース接続の詳細と接続オブジェクト自体を保存するために使用されます。
次のセクションでは、このクラスの実際の実装について詳しく説明します。
データベースクラスの実装
このセクションでは、さまざまなデータベース操作を実行するために必要なメソッドを実装します。
接続
次のコード スニペットに示すように、
リーリー
このメソッドの目的は、mysqli 拡張機能を使用して MySQL データベースへの接続を確立することです。まず、データベースへの接続が既に存在するかどうかを確認します。存在する場合、メソッドは接続が確立されていることを示す
truemysqli_connect 関数を使用してデータベースへの接続を試みます。
mysqli_select_db 関数を呼び出してデータベースが選択されます。最後に、データベースの選択が成功すると、接続が確立されデータベースが選択されたことを示す
true が返されます。接続またはデータベースの選択に失敗した場合は、
false が返されます。
切断メソッド
disconnect
メソッドを見てみましょう。
リーリー
アクティブなデータベース接続があるかどうかを確認し、存在する場合は
$this->con
プロパティを select
メソッド
これは最も重要で頻繁に使用される方法の 1 つです。まず、テーブルが MySQL データベースに存在するかどうかを確認するための
tableExists メソッドを作成します。
リーリー
次に、
select
リーリー
データベースからレコードを取得するために使用されます。まず、入力パラメータを使用して SQL クエリ文字列を構築します。指定されたテーブルがデータベースに存在するかどうかを確認し、存在する場合はクエリを実行します。クエリが成功すると、結果の行がフェッチされ、連想配列として返されます。クエリが失敗した場合、このメソッドは を返します。指定したテーブルがデータベースに存在しない場合も、false
が返されます。
挿入
メソッド
次のコード スニペットに示されている insert
メソッドを見てみましょう。
リーリー
mysqli 拡張機能を使用して、MySQL データベース内のテーブルにデータを挿入するために使用されます。この関数は、テーブル名、挿入する値、および (オプション) 挿入する列の 3 つのパラメータを取ります。まず、指定されたテーブルがデータベースに存在するかどうかを確認し、存在する場合は、指定された値と列を使用してデータを挿入する SQL クエリを構築します。
最後に、 関数を使用してクエリを実行します。クエリが成功した場合、関数は true
を返し、それ以外の場合は
を返します。
メソッド
delete
メソッドを簡単に見てみましょう。
リーリー
データベースからテーブルまたは行を削除するために使用されます。
更新
メソッドこれは、データベース情報を更新するための重要な方法の 1 つでもあります。
メソッドの実装は次のようになります。
リーリーupdate
メソッドには、、
$rows、および $where
の 3 つのパラメーターがあります。次に、
配列が解析されて、更新クエリの SQL WHERE
句が生成されます。 $rows
配列を解析して、更新クエリの SQL SET
句を生成します。配列のキーは列名を表し、配列の値は列の新しい値を表します。 mysqli_real_escape_string
関数を使用して文字列値をサニタイズします。
<p>至此,我们完成了数据库操作所需方法的创建。您可以将其另存为 <strong>Database.php</strong> 文件。</p>
<p>在下一节中,我们将了解如何使用它。</p>
<h2 id="toc-323h-how-to-use-the-database-class">如何使用<code>数据库
类
首先,我们在数据库中创建一个 MySQL 表,以便我们可以测试该表上的 CRUD 操作。
继续运行以下 SQL 来创建表。
CREATE TABLE `mysqlcrud` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`) );
它应该在您的数据库中创建 mysqlcrud
表。
让我们看看如何插入新行。
<?php require "Database.php"; $db = new Database("DB_HOST", "DB_USER", "DB_PASS", "DB_NAME"); if ($db->connect()) { $db->insert('mysqlcrud', array(1,"Foo Bar","foobar@yahoo.com")); } else { echo "There was some error connecting to the database."; } ?>
首先,我们创建了一个新的 Database
对象,并将数据库凭据作为参数传递。您需要将其替换为您的凭据。接下来调用Database
类的connect
方法来建立与数据库的连接。如果连接成功,则调用 insert
方法,并将表名作为第一个参数,将新行的值数组作为第二个参数。
如果一切顺利,它应该在 mysqlcrud
表中创建一个新行。
让我们看看更新操作是如何工作的。
<?php require "Database.php"; $db = new Database("DB_HOST", "DB_USER", "DB_PASS", "DB_NAME"); if ($db->connect()) { $db->update('mysqlcrud',array('name'=>'Updated Foo Bar'), array('id',1)); } else { echo "There was some error connecting to the database."; } ?>
如您所见,我们调用了 update
方法来更新该行的 name
列。
接下来,让我们看看如何删除特定行。
<?php require "Database.php"; $db = new Database("DB_HOST", "DB_USER", "DB_PASS", "DB_NAME"); if ($db->connect()) { $db->delete('mysqlcrud', "`id` = '1'"); } else { echo "There was some error connecting to the database."; } ?>
它应该删除 id 等于 1
的行。
让我们看看如何从表中检索所有记录。
<?php require "Database.php"; $db = new Database("DB_HOST", "DB_USER", "DB_PASS", "DB_NAME"); if ($db->connect()) { $rows = $db->select('mysqlcrud'); } else { echo "There was some error connecting to the database."; } ?>
如您所见,select
方法允许我们从所需的表中获取所有记录。
这就是您如何使用我们的类执行 CRUD 操作。
以上がPHP と MySQL を使用した現実世界の OOPの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。