首頁 後端開發 PHP問題 php介面怎麼實現增刪修查

php介面怎麼實現增刪修查

Mar 29, 2023 am 10:09 AM

在Web開發的時候,介面的作用非常重要。 PHP作為一種常見的語言,也在網路程式設計和伺服器端程式設計中廣泛使用。在本文中,將討論如何使用PHP實作增刪改查介面。

一、實作基本的增刪改查介面

  1. 前提條件

在開始之前,請確保您已經安裝了PHP和MySQL,並擁有相應的資料庫。

  1. 建立資料庫和資料表

首先,我們需要建立一個MySQL資料庫和資料表。此處我們示範使用一個名為「user」的資料表作為範例。

CREATE DATABASE phpapi;
USE phpapi;

CREATE TABLE user (
 id INT(11) NOT NULL AUTO_INCREMENT,
 name VARCHAR(50) NOT NULL,
 email VARCHAR(100) NOT NULL,
 phone VARCHAR(20),
 PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;##PHP

#「建立PHPP檔案
  1. 接下來,我們需要在伺服器端建立PHP檔案來實作我們的介面。我們可以使用最簡單的方式,也就是在PHP檔案中編寫所有的邏輯程式碼,然後透過HTTP請求來呼叫。

(1)建立檔案並寫入頭部資訊

<?php

header("Content-Type: application/json; charset=UTF-8");

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE, PUT");
header("Access -Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

(2)連接資料庫

$host = " localhost";

$user = "root";

$password = "";
$dbname = "phpapi";

try {

$db = new PDO(&quot;mysql:host=$host;dbname=$dbname&quot;, $user, $password);
登入後複製

} catch ( PDOException $e) {

echo &quot;Connection failed: &quot; . $e-&gt;getMessage();</p>
<p>}</p>
<p>(3)編寫查詢及增刪改操作</p>
<p>// 查詢所有資料</p>$stmt = $db-&gt; prepare("SELECT * from user");<p>$stmt-&gt;execute();<br>$result = $stmt-&gt;fetchAll(PDO::FETCH_ASSOC);<br><br>// 取得單一資料</p>$stmt = $db-&gt;prepare("SELECT * from user WHERE id = ?");<p>$stmt-&gt;bindParam(1, $_GET['id']);<br>$stmt-&gt;execute();<br>$single_result = $stmt-&gt;fetch(PDO::FETCH_ASSOC);<br><br>// 新增資料</p>$stmt = $db-&amp;gt ;prepare("INSERT INTO user (name, email, phone) VALUES (?, ?, ?)");<p>$stmt-&gt;bindParam(1, $_POST['name']);<br>$ stmt-&gt;bindParam(2, $_POST['email']);<br>$stmt-&gt;bindParam(3, $_POST['phone']);<br>$stmt-&gt;execute(); <br><br>// 更新資料</p>$stmt = $db-&gt;prepare("UPDATE user SET name = ?, email = ?, phone = ? WHERE id = ?");<p>$stmt -&gt;bindParam(1, $_POST['name']);<br>$stmt-&gt;bindParam(2, $_POST['email']);<br>$stmt-&gt;bindParam(3, $ _POST['phone']);<br>$stmt-&gt;bindParam(4, $_POST['id']);<br>$stmt-&gt;execute();<br><br>// 刪除資料</p>$stmt = $db-&gt;prepare("DELETE FROM user WHERE id = ?");<p>$stmt-&gt;bindParam(1, $_POST['id']);<br>$ stmt-&gt;execute();<br><br>(4)輸出查詢結果</p>
<p>echo json_encode(['data' =&gt; $result]);</p>echo json_encode(['data ' =&gt; $single_result]);<p><br></p>測試介面<ol start="4">
<li>最後,我們可以使用HTTP請求工具,例如Postman或Curl來測試介面的功能是否正常。 </ol>
<p>二、新增安全性措施</p>
<p></p>給介面新增Token驗證<ol>
<li>為了增加介面的安全性,我們需要為介面新增Token驗證機制。具體實作方式如下:</ol>
<p>新增Token欄位:</p>
<p>header("Token: xxxxxxx");</p>
<p>驗證Token:</p>##$token = $_SERVER ['HTTP_TOKEN'];<p>if ($token !== 'xxxxxxx') {</p>
<pre class="brush:php;toolbar:false">echo json_encode(['code' =&gt; 500, 'msg' =&gt; 'Token验证失败']);
exit;
登入後複製

}

為介面新增資料校驗

  1. #為了避免惡意輸入和非法操作,我們需要對介面資料進行校驗。具體實作方式如下:
(1)對輸入參數進行型別校驗:

if (!is_numeric($_GET['id'])) {

echo json_encode(['code' =&gt; 500, 'msg' =&gt; '参数类型错误']);
exit;
登入後複製
}

(2)對輸入參數進行長度校驗:

if (strlen($_POST['name']) > 50) {

echo json_encode(['code' =&gt; 500, 'msg' =&gt; '参数长度错误']);
exit;
登入後複製
}

(3)過濾SQL語句:

$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);

$email = filter_var($_POST['email' ], FILTER_SANITIZE_EMAIL);

三、總結

在本文中,我們已經學習瞭如何使用PHP編寫增刪改查接口,並為接口添加了一些安全性措施,例如Token驗證和資料校驗。希望這些內容能夠對你有所幫助,並且能夠在未來的Web開發中為你提供參考和指導。

以上是php介面怎麼實現增刪修查的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP數組去重有哪些最佳實踐 PHP數組去重有哪些最佳實踐 Mar 03, 2025 pm 04:41 PM

PHP數組去重有哪些最佳實踐

PHP數組去重可以利用鍵名唯一性嗎 PHP數組去重可以利用鍵名唯一性嗎 Mar 03, 2025 pm 04:51 PM

PHP數組去重可以利用鍵名唯一性嗎

PHP數組去重需要考慮性能損耗嗎 PHP數組去重需要考慮性能損耗嗎 Mar 03, 2025 pm 04:47 PM

PHP數組去重需要考慮性能損耗嗎

PHP數組去重有哪些優化技巧 PHP數組去重有哪些優化技巧 Mar 03, 2025 pm 04:50 PM

PHP數組去重有哪些優化技巧

如何在PHP中實現消息隊列(RabbitMQ,REDIS)? 如何在PHP中實現消息隊列(RabbitMQ,REDIS)? Mar 10, 2025 pm 06:15 PM

如何在PHP中實現消息隊列(RabbitMQ,REDIS)?

最新的PHP編碼標準和最佳實踐是什麼? 最新的PHP編碼標準和最佳實踐是什麼? Mar 10, 2025 pm 06:16 PM

最新的PHP編碼標準和最佳實踐是什麼?

我如何處理PHP擴展和PECL? 我如何處理PHP擴展和PECL? Mar 10, 2025 pm 06:12 PM

我如何處理PHP擴展和PECL?

如何使用反射來分析和操縱PHP代碼? 如何使用反射來分析和操縱PHP代碼? Mar 10, 2025 pm 06:12 PM

如何使用反射來分析和操縱PHP代碼?

See all articles