Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan pencetus MySQL dalam PHP?

Bagaimana untuk menggunakan pencetus MySQL dalam PHP?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBasal
2024-05-31 10:32:11629semak imbas

Menggunakan pencetus MySQL dalam PHP memerlukan: Mencipta pencetus: Gunakan pernyataan SQL CREATE TRIGGER untuk mencipta pencetus dalam pangkalan data. Nyalakan pencetus: Gunakan fungsi mysqli_query() untuk melaksanakan pencetus. Aplikasi praktikal: Gunakan pencetus MySQL dalam PHP untuk menguatkuasakan integriti data, seperti memancarkan mesej ralat apabila cuba mengemas kini nilai negatif.

如何在 PHP 中使用 MySQL 触发器?

Cara menggunakan pencetus MySQL dalam PHP

Pencetus MySQL ialah objek pangkalan data yang secara automatik melakukan satu siri tindakan apabila syarat tertentu dipenuhi. Pencetus biasanya digunakan untuk mengekalkan integriti data dalam pangkalan data atau melaksanakan tugas automatik yang lain.

Mencipta Pencetus

Untuk menggunakan pencetus dalam PHP, langkah pertama ialah menciptanya dalam pangkalan data. Pencetus boleh dibuat dengan pernyataan SQL berikut:

CREATE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE ON table_name
FOR EACH ROW
BEGIN
  -- 要执行的语句
END

Sebagai contoh, mari buat pencetus yang memasukkan masa semasa apabila baris baharu dimasukkan ke dalam jadual pengguna: users 表中插入新行时插入当前时间的触发器:

CREATE TRIGGER insert_timestamp
BEFORE INSERT ON users
FOR EACH ROW
BEGIN
  SET NEW.created_at = NOW();
END

使用 PHP 触发触发器

创建触发器后,可以使用 PHP 触发它们。可以通过 mysqli_query() 函数执行触发器:

<?php
$mysqli = new mysqli("localhost", "username", "password", "database");

$mysqli->query("INSERT INTO users (name, email) VALUES ('John Doe', 'john.doe@example.com')");
?>

当执行此代码时,将触发 insert_timestamp 触发器,并在 users

<?php
$mysqli = new mysqli("localhost", "username", "password", "database");

$mysqli->query("CREATE TRIGGER update_balance
BEFORE UPDATE ON accounts
FOR EACH ROW
BEGIN
  IF NEW.balance < 0 THEN
    SIGNAL SQLSTATE '45000'
      SET MESSAGE_TEXT = '余额不能为负值';
  END IF;
END
");

$mysqli->query("UPDATE accounts SET balance = -100 WHERE id = 1");
?>

Mencetuskan pencetus menggunakan PHP

Selepas mencipta pencetus, anda boleh mencetuskannya menggunakan PHP. Pencetus boleh dilaksanakan melalui fungsi mysqli_query():

rrreee

Apabila kod ini dilaksanakan, pencetus insert_timestamp akan dicetuskan dan dipaparkan dalam pengguna kod> jadual Masukkan masa semasa apabila memasukkan baris baharu. <p></p>🎜Contoh praktikal🎜🎜🎜Berikut ialah contoh praktikal menggunakan pencetus MySQL dalam PHP: 🎜rrreee🎜Contoh ini menunjukkan cara menggunakan pencetus dalam PHP untuk menguatkuasakan integriti data apabila cuba mengemas kini baki akaun kepada jantina bernilai negatif. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menggunakan pencetus MySQL dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn