」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > PHP CRUD 操作初學者指南

PHP CRUD 操作初學者指南

發佈於2024-08-05
瀏覽:666

介绍

PHP 是一种灵活且广泛使用的服务器端脚本语言,为我们今天看到的许多动态和交互式网页提供支持。作为一名初学者,我发现学习 PHP 的旅程既充满挑战又充满收获。在这篇文章中,我们将在我上一篇文章中介绍的基础知识的基础上,探索 PHP 中更高级的主题。

如果您还没有阅读我的第一篇文章 PHP Primer:初学者指南,我强烈建议您查看一下。它涵盖了 PHP 的基础知识,包括设置开发环境、理解基本语法以及使用变量和数据类型。

随着我们深入研究 PHP,我欢迎任何反馈、建议或更正。您的评论不仅帮助我进步,还为所有读者创造了一个协作学习的环境。让我们一起继续我们的PHP之旅吧!

设置 MySQL 数据库

在开始编码之前,我们需要设置一个MySQL数据库。如果您安装了 XAMPP,那么您已经成功了一半!

在 XAMPP 中配置 MySQL

  1. 打开XAMPP控制面板:启动XAMPP控制面板并启动“Apache”和“MySQL”服务。

  2. 打开XAMPP控制面板:启动XAMPP控制面板并启动“Apache”和“MySQL”服务。

  3. 创建数据库:

  • 点击左侧边栏的“新建”按钮。

  • 输入数据库名称,然后单击“创建”。

还有另一种选择,即通过编写 CREATE DATABASE database_name 创建数据库; SQL 脚本中的命令,然后单击 Go 命令。

这些步骤如下图所示。

Start the PHP and MySQL server with XAMPP

Open MySQL in XAMPP

创建数据库的第一个选项:
Create new database

在 SQL 脚本上使用 MySQL 命令创建数据库:
Create new database by using MySQL command

使用 phpMyAdmin 创建表

  1. 选择您的数据库:单击您刚刚创建的数据库。

  2. 创建表:

  • 输入表的名称(例如,users)。

  • 指定列数,然后单击“执行”。

  • 定义列(例如,id、姓名、电子邮件、年龄)。

或者通过在 SQL 脚本中使用 MySQL 命令

CREATE TABLE users (
    id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL, 
    name VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL UNIQUE,
    age INT(3) NOT NULL
)


然后单击“开始”。

将 PHP 连接到 MySQL

使用 'mysqli' 连接 MySQL

更新了下面的代码




执行CRUD操作

在 Web 开发环境中执行 CRUD 操作是指可以对数据库中存储的数据执行的基本操作:创建、读取、更新和删除。这些操作对于构建用户可以与数据交互的动态和交互式 Web 应用程序至关重要。 CRUD 操作是 Web 应用程序中数据库交互的支柱。 PHP 允许您通过定义包含 SQL 代码的变量并使用 PHP 的数据库交互库(如 MySQLi

执行它们)来轻松执行这些操作

创建:插入数据

更新代码 ↓

";
} else {
    // Log the error for debugging purposes
    error_log("Error: " . mysqli_stmt_error($stmt));

    // Display a generic error message to the user
    echo "An error occurred while creating the record. Please try again later.";
}

// Close the prepared statement
mysqli_stmt_close($stmt);

阅读:获取数据

读取操作用于从数据库中获取数据。这通常是使用 SQL 中的 SELECT 语句来完成的。以下是如何在 PHP 中执行读取操作的分步代码和说明:

// Create an SQL query
$sql = "SELECT id, name, email, age FROM users";
$result = mysqli_query($conn, $sql);

// Check if there are any results
if (mysqli_num_rows($result) > 0) {
    // Fetch and output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. " - Age: " . $row["age"]. "
"; } } else { echo "0 results"; }

更新:修改数据

您是否曾经需要修改数据库中的现有数据?你是如何处理的?
PHP 中的更新操作用于修改 MySQL 数据库中的现有记录。这对于维护应用程序中准确且最新的数据至关重要。例如,如果用户的信息发生更改,例如他们的电子邮件地址或年龄,您将使用更新操作在数据库中反映这些更改。

更新了代码



根据上面编写的代码,如果更新过程顺利,我们将收到消息“记录更新成功”,在这种情况下,具有指定电子邮件的用户的年龄值将更改为32,我们可以看到我们数据库中的结果。

删除:删除数据

PHP中的删除操作用于从数据库表中删除记录。此操作使用 SQL DELETE 语句执行,该语句指定应删除记录的条件。 DELETE 语句的语法允许您指定一个或多个条件,以确保仅从数据库中删除预期的记录。

更新了代码

 0) {
            echo "Record deleted successfully";
        } else {
            echo "No record found with the specified email.";
        }
    } else {
        // Log the error internally, do not display it to the user
        error_log("Error executing statement: " . mysqli_stmt_error($stmt));
        echo "An error occurred while deleting the record. Please try again later.";
    }

    // Close the statement
    mysqli_stmt_close($stmt);
} else {
    // Log the error internally, do not display it to the user
    error_log("Error preparing statement: " . mysqli_error($conn));
    echo "An error occurred. Please try again later.";
}

// Close the connection
mysqli_close($conn);
?>

进一步阅读:

  • PHP 官方文档
  • W3Schools PHP 教程

结论

CRUD 操作是 Web 应用程序中数据库交互的支柱。通过掌握这些操作,您可以构建动态的、交互式的应用程序。我很想听听您的 CRUD 操作经验!在下面的评论中分享您的想法,让我们继续讨论。

我想向每一位花时间阅读这篇文章并分享您的见解的人表示诚挚的谢意。在我们继续共同学习和成长的过程中,您的参与和反馈非常有价值。

不要忘记查看我之前的帖子以了解更多基本概念,并随时在下面留下您的反馈或评论。感谢您与我一起探索 PHP 中的 CRUD 操作。

版本聲明 本文轉載於:https://dev.to/rkadriu/mastering-crud-operations-with-php-and-mysql-51gh?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何將來自三個MySQL表的數據組合到新表中?
    如何將來自三個MySQL表的數據組合到新表中?
    mysql:從三個表和列的新表創建新表 答案:為了實現這一目標,您可以利用一個3-way Join。 選擇p。 *,d.content作為年齡 來自人為p的人 加入d.person_id = p.id上的d的詳細信息 加入T.Id = d.detail_id的分類法 其中t.taxonomy ...
    程式設計 發佈於2025-05-02
  • Spark DataFrame添加常量列的妙招
    Spark DataFrame添加常量列的妙招
    在Spark Dataframe ,將常數列添加到Spark DataFrame,該列具有適用於所有行的任意值的Spark DataFrame,可以通過多種方式實現。使用文字值(SPARK 1.3)在嘗試提供直接值時,用於此問題時,旨在為此目的的column方法可能會導致錯誤。 df.withco...
    程式設計 發佈於2025-05-02
  • 如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    程式設計 發佈於2025-05-02
  • 如何解決由於Android的內容安全策略而拒絕加載腳本... \”錯誤?
    如何解決由於Android的內容安全策略而拒絕加載腳本... \”錯誤?
    Unveiling the Mystery: Content Security Policy Directive ErrorsEncountering the enigmatic error "Refused to load the script..." when deployi...
    程式設計 發佈於2025-05-02
  • 人臉檢測失敗原因及解決方案:Error -215
    人臉檢測失敗原因及解決方案:Error -215
    錯誤處理:解決“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“檢測”中的錯誤:在功能檢測中。”當Face Cascade分類器(即面部檢測至關重要的組件)未正確加載時,通常會出現此錯誤。 要解決此問題,必...
    程式設計 發佈於2025-05-02
  • 在JavaScript中如何並發運行異步操作並正確處理錯誤?
    在JavaScript中如何並發運行異步操作並正確處理錯誤?
    同意操作execution 在執行asynchronous操作時,相關的代碼段落會遇到一個問題,當執行asynchronous操作:此實現在啟動下一個操作之前依次等待每個操作的完成。要啟用並發執行,需要進行修改的方法。 第一個解決方案試圖通過獲得每個操作的承諾來解決此問題,然後單獨等待它們: c...
    程式設計 發佈於2025-05-02
  • Android如何向PHP服務器發送POST數據?
    Android如何向PHP服務器發送POST數據?
    在android apache httpclient(已棄用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    程式設計 發佈於2025-05-02
  • 同實例無需轉儲複製MySQL數據庫方法
    同實例無需轉儲複製MySQL數據庫方法
    在同一實例上複製一個MySQL數據庫而無需轉儲在同一mySQL實例上複製數據庫,而無需創建InterMediate sqql script。以下方法為傳統的轉儲和IMPORT過程提供了更簡單的替代方法。 直接管道數據 MySQL手動概述了一種允許將mysqldump直接輸出到MySQL cli...
    程式設計 發佈於2025-05-02
  • Async Void vs. Async Task在ASP.NET中:為什麼Async Void方法有時會拋出異常?
    Async Void vs. Async Task在ASP.NET中:為什麼Async Void方法有時會拋出異常?
    在ASP.NET async void void async void void void void void的設計無需返回asynchroncon而無需返回任務對象。他們在執行過程中增加未償還操作的計數,並在完成後減少。在某些情況下,這種行為可能是有益的,例如未期望或明確預期操作結果的火災和...
    程式設計 發佈於2025-05-02
  • 為什麼使用固定定位時,為什麼具有100%網格板柱的網格超越身體?
    為什麼使用固定定位時,為什麼具有100%網格板柱的網格超越身體?
    網格超過身體,用100%grid-template-columns 為什麼在grid-template-colms中具有100%的顯示器,當位置設置為設置的位置時,grid-template-colly修復了? 問題: 考慮以下CSS和html: class =“ snippet-code”> ...
    程式設計 發佈於2025-05-02
  • 為什麼HTML無法打印頁碼及解決方案
    為什麼HTML無法打印頁碼及解決方案
    無法在html頁面上打印頁碼? @page規則在@Media內部和外部都無濟於事。 HTML:Customization:@page { margin: 10%; @top-center { font-family: sans-serif; font-weight: ...
    程式設計 發佈於2025-05-02
  • 如何檢查對像是否具有Python中的特定屬性?
    如何檢查對像是否具有Python中的特定屬性?
    方法來確定對象屬性存在尋求一種方法來驗證對像中特定屬性的存在。考慮以下示例,其中嘗試訪問不確定屬性會引起錯誤: >>> a = someClass() >>> A.property Trackback(最近的最新電話): 文件“ ”,第1行, attributeError:SomeClass實...
    程式設計 發佈於2025-05-02
  • 如何使用不同數量列的聯合數據庫表?
    如何使用不同數量列的聯合數據庫表?
    合併列數不同的表 當嘗試合併列數不同的數據庫表時,可能會遇到挑戰。一種直接的方法是在列數較少的表中,為缺失的列追加空值。 例如,考慮兩個表,表 A 和表 B,其中表 A 的列數多於表 B。為了合併這些表,同時處理表 B 中缺失的列,請按照以下步驟操作: 確定表 B 中缺失的列,並將它們添加到表的...
    程式設計 發佈於2025-05-02
  • 如何同步迭代並從PHP中的兩個等級陣列打印值?
    如何同步迭代並從PHP中的兩個等級陣列打印值?
    同步的迭代和打印值來自相同大小的兩個數組使用兩個數組相等大小的selectbox時,一個包含country代碼的數組,另一個包含鄉村代碼,另一個包含其相應名稱的數組,可能會因不當提供了exply for for for the uncore for the forsion for for ytry...
    程式設計 發佈於2025-05-02
  • 如何有效地選擇熊貓數據框中的列?
    如何有效地選擇熊貓數據框中的列?
    在處理數據操作任務時,在Pandas DataFrames 中選擇列時,選擇特定列的必要條件是必要的。在Pandas中,選擇列的各種選項。 選項1:使用列名 如果已知列索引,請使用ILOC函數選擇它們。請注意,python索引基於零。 df1 = df.iloc [:,0:2]#使用索引0和1 ...
    程式設計 發佈於2025-05-02

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3