網頁設計實驗室

Web Design Laboratory

PHP 連結 MySQL 資料庫進行(CRUD)增、刪、改、查

Dec 11, 2024

第一步 : 率先建立 MySQL 資料庫和資料表格

使用 MySQL 的管理工具 phpMyAdmin 建立資料庫和所需的表格。
設計表格結構,包括欄位名稱、資料型態、是否為主鍵等。

phpMyAdmin
phpMyAdmin

第二步 : 使用 PHP 的 MySQLi 建立資料庫連線

 
      <?php
           1. 建立資料庫連線
          $servername = "your_servername";
          $username = "your_username";
          $password = "your_password";
          $dbname = "your_dbname";

          $conn = new mysqli($servername, $username, $password, $dbname);

          // 檢查連線是否成功
          if ($conn->connect_error) {
              die("連線失敗: " . $conn->connect_error);
          }

           2. 執行 SQL 語句 (例如: 查詢所有資料)
          $sql = "SELECT * FROM YourTable";
          $result = $conn->query($sql);

          3. 處理查詢結果
          if ($result->num_rows > 0) {
            // 输出数据
            while($row = $result->fetch_assoc()) {
            echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["email"]. "<br>";
            }
          } else {
            echo "0 results";
          }

          4. 關閉連線
          $conn->close();
          ?>



範例:插入資料 (INSERT)

 
      <?php
          // 準備 SQL 插入語句
          $sql = "INSERT INTO YourTable (column1, column2) VALUES (?, ?)";

          // 準備要插入的資料
          $value1 = "John Doe";
          $value2 = "john@example.com";

          // 準備好的陳述式
          $stmt = $conn->prepare($sql);
          $stmt->bind_param("ss", $value1, $value2);

          // 執行 SQL 語句
          if ($stmt->execute()) {
            echo "資料插入成功";
          } else {
            echo "資料插入失敗: " . $stmt->error;
          }

          $stmt->close();
          $conn->close();
          ?>



範例:更新資料 (UPDATE)

 
      <?php
          // 準備 SQL 更新語句
          $sql = "UPDATE YourTable SET column1 = ? WHERE id = ?";

          // 準備要更新的資料和條件
          $value1 = "New Value";
          $id = 1;

          $stmt = $conn->prepare($sql);
          $stmt->bind_param("si", $value1, $id);

          // 執行 SQL 語句
          if ($stmt->execute()) {
            echo "資料更新成功";
          } else {
            echo "資料更新失敗: " . $stmt->error;
          }

          $stmt->close();
          $conn->close();
          ?>



範例:刪除資料 (DELETE)

 
      <?php
          // 準備 SQL 刪除語句
          $sql = "DELETE FROM YourTable WHERE id = ?";

          // 準備要刪除的資料的條件
          $id = 1;

          $stmt = $conn->prepare($sql);
          $stmt->bind_param("i", $id);

          // 執行 SQL 語句
          if ($stmt->execute()) {
            echo "資料刪除成功";
          } else {
            echo "資料刪除失敗: " . $stmt->error;
          }

          $stmt->close();
          $conn->close();
          ?>



範例:一個簡單的 CRUD 操作

 
      <?php
          // 假設已建立資料庫連線 $conn

          // 新增資料
          $sql = "INSERT INTO users (username, email) VALUES (?, ?)";
          $stmt = $conn->prepare($sql);
          $stmt->bind_param("ss", $_POST['username'], $_POST['email']);
          $stmt->execute();

          // 查詢資料
          $sql = "SELECT * FROM users";
          $result = $conn->query($sql);

          // 更新資料
          $sql = "UPDATE users SET email = ? WHERE id = ?";
          $stmt = $conn->prepare($sql);
          $stmt->bind_param("si", $_POST['new_email'], $_POST['id']);
          $stmt->execute();

          // 刪除資料
          $sql = "DELETE FROM users WHERE id = ?";
          $stmt = $conn->prepare($sql);
          $stmt->bind_param("i", $_POST['id']);
          $stmt->execute();
          ?>



使用陳述式(Prepared Statements)來防止 SQL 注入攻擊
範例:使用準備好的陳述式進行使用者登入驗證

 
      <?php
        // 假設已建立資料庫連線 $conn

        $username = $_POST['username'];
        $password = $_POST['password'];

        $stmt = $conn->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
        $stmt->bind_param("ss", $username, $password);
        $stmt->execute();
        $result = $stmt->get_result();

        if ($result->num_rows > 0) {
            // 登入成功
            echo "登入成功!";
        } else {
            // 登入失敗
            echo "登入失敗!";
        }
          ?>