在 PHP 中,通常我們使用 MySQL 數據庫來創建和使用觸發器。觸發器是一種自動執行的存儲過程,當對表進行插入、更新或刪除操作時,它會自動執行。以下是如何在 PHP 中創建和使用 MySQL 觸發器的步驟:
首先,我們需要使用 PHP 的 mysqli
或 PDO
擴展來連接到 MySQL 數據庫。以下是使用 mysqli
連接的示例:
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
// 創建連接
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
接下來,我們將創建一個簡單的觸發器,當在 employees
表中插入新記錄時,它會自動將新員工的部門設置為 “IT”。
DELIMITER //
CREATE TRIGGER set_default_department
BEFORE INSERT ON employees
FOR EACH ROW
BEGIN
SET NEW.department = 'IT';
END;
//
DELIMITER ;
在這個例子中,我們使用 DELIMITER
命令更改語句結束符,以便能夠創建包含 BEGIN
和 END
關鍵字的觸發器。觸發器會在插入新記錄之前執行,將 NEW.department
設置為 “IT”。
現在,當我們在 PHP 中向 employees
表插入新記錄時,觸發器將自動將部門設置為 “IT”。以下是使用 mysqli
在 PHP 中插入記錄的示例:
$name = "John Doe";
$age = 30;
$department = "";
$sql = "INSERT INTO employees (name, age, department) VALUES ('$name', $age, '$department')";
if ($conn->query($sql) === TRUE) {
echo "新記錄插入成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
在完成所有操作后,不要忘記關閉與數據庫的連接:
$conn->close();
這就是如何在 PHP 中創建和使用 MySQL 觸發器的方法。請注意,觸發器僅適用于 MySQL 數據庫,不適用于其他類型的數據庫。