로봇부터 자전거까지 다양한 예가 OOP에 대한 쉬운설명 역할을 합니다. 그러나 나는 특히 프로그래머를 위해 실제 시나리오에서 OOP가 어떻게 작동하는지 보여주고 싶습니다. 실제적인 예는 MySQL CRUD(생성, 읽기, 업데이트 및 삭제) 클래스를 생성하는 것입니다. 이런 방식으로 프로그래머는 데이터베이스 디자인에 관계없이 프로젝트의 항목을 효과적으로 관리할 수 있습니다.
요구사항을 결정하고 나면 클래스의 기본 구조를 만드는 것은 비교적 간단합니다. 먼저 기본적인 MySQL 작업을 수행할 수 있는지 확인해야 합니다. 이를 달성하려면 다음 기능을 구현해야 합니다.
클래스 정의가 어떻게 생겼는지 간단히 살펴보겠습니다.
으아아아기본적으로는 Database
的骨架类,它代表数据库连接并提供与数据库交互的方法。我们定义了不同的私有属性,例如 $db_host
、$db_user
、$db_pass
、$db_name
和 $con
라는 프로그램이에요. 이 클래스는 데이터베이스 연결 세부 정보와 연결 개체 자체를 저장하는 데 사용됩니다.
다음 섹션에서는 이 클래스의 실제 구현을 자세히 설명하겠습니다.
이 섹션에서는 다양한 데이터베이스 작업을 수행하는 데 필요한 메서드를 구현합니다.
connect
방법 다음 코드 조각에 표시된 대로 connect
메서드를 추가하세요.
connect
方法的目的是使用 mysqli 扩展建立与 MySQL 数据库的连接。首先,我们检查是否已经存在与数据库的连接,如果存在,该方法只是返回 true
表示连接已经建立,无需重新连接。如果没有连接,它会尝试使用 mysqli_connect
메소드의 목적은 mysqli 확장을 사용하여 MySQL 데이터베이스에 대한 연결을 설정하는 것입니다. 먼저, 데이터베이스에 이미 연결이 있는지 확인합니다. 연결이 있으면 메서드는 연결이 설정되었으며 다시 연결할 필요가 없음을 나타내는 true
를 반환합니다. 연결이 없으면 mysqli_connect
함수를 사용하여 데이터베이스에 연결을 시도합니다.
데이터베이스 연결이 성공하면 mysqli_select_db
函数来选择数据库。最后如果数据库选择成功,则返回true
,表示连接建立,数据库选择。如果连接或数据库选择失败,则返回 false
라고 호출됩니다.
disconnect
방법 disconnect
방법을 살펴보겠습니다.
mysqli_close()
函数关闭连接,并将 $this->con
属性设置为 false
를 사용합니다.
select
방법 가장 중요하고 자주 사용되는 방법 중 하나입니다. 먼저 테이블이 MySQL 데이터베이스에 존재하는지 확인하는 tableExists
메서드를 만듭니다.
다음으로 select
메소드를 계속 구현합니다.
데이터베이스에서 레코드를 검색하는 데 사용됩니다. 먼저 입력 매개변수를 사용하여 SQL 쿼리 문자열을 작성합니다. 지정한 테이블이 데이터베이스에 있는지 확인하고, 있으면 쿼리를 실행합니다. 쿼리가 성공하면 결과 행을 가져와서 연관 배열로 반환합니다. 쿼리가 실패하면 메서드는 false
。如果数据库中不存在指定的表,也返回false
를 반환합니다.
insert
방법 다음 코드 조각에 표시된 insert
메서드를 살펴보겠습니다.
mysqli 확장을 사용하여 MySQL 데이터베이스 테이블에 데이터를 삽입하는 데 사용됩니다. 이 함수는 테이블 이름, 삽입할 값, (선택 사항) 삽입할 열 등 세 가지 매개 변수를 사용합니다. 먼저 지정된 테이블이 데이터베이스에 존재하는지 확인하고, 존재한다면 제공된 값과 컬럼을 이용하여 데이터를 삽입하는 SQL 쿼리를 구성합니다. mysqli_real_escape_string
함수를 사용하여 문자열 값을 정리합니다.
마지막으로 사용하세요mysqli_query()
函数执行查询,如果查询成功,该函数返回true
,否则返回false
.
delete
방법 delete
방법을 간단히 살펴보겠습니다.
데이터베이스에서 테이블이나 행을 삭제하는 데 사용됩니다.
update
방법 이는 데이터베이스 정보를 업데이트하는 중요한 방법 중 하나이기도 합니다.
update
메소드 구현은 다음과 같아야 합니다.
update
方法具有三个参数:$table
、$rows
和 $where
。然后解析 $where
数组以生成用于更新查询的 SQL WHERE
子句。解析 $rows
数组以生成用于更新查询的 SQL SET
子句。数组键表示列名称,而数组值表示列的新值。我们使用 mysqli_real_escape_string
메소드에는 $table
, $rows
및 $where
의 세 가지 매개변수가 있습니다. 그런 다음 $where
배열을 구문 분석하여 업데이트 쿼리에 대한 SQL WHERE
절을 생성합니다. $rows
배열을 구문 분석하여 업데이트 쿼리에 대한 SQL SET
절을 생성합니다. 배열 키는 열 이름을 나타내고, 배열 값은 열의 새 값을 나타냅니다.
至此,我们完成了数据库操作所需方法的创建。您可以将其另存为 Database.php 文件。
在下一节中,我们将了解如何使用它。
数据库
类首先,我们在数据库中创建一个 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!