Web Design Laboratory
使用 MySQL 的管理工具 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 "登入失敗!";
}
?>