>  기사  >  백엔드 개발  >  PHP와 MySQL을 사용한 실제 OOP

PHP와 MySQL을 사용한 실제 OOP

王林
王林원래의
2023-08-26 19:45:20759검색

使用 PHP 和 MySQL 进行真实世界的 OOP

로봇부터 자전거까지 다양한 예가 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.