Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tạo trình kích hoạt mysql thông qua PHP?

Trong khi mysqli không liên quan đến bất cứ điều gì với DELIMITER trong multi-query , nó thực sự không làm bất cứ điều gì với bất kỳ dấu phân cách nào trong các truy vấn thông thường, vì vậy chỉ cần chuyển từng trình kích hoạt của bạn vào từng cái một:

$ cat i.php 
<?php
$mysqli = new mysqli('localhost', 'test', '', 'test');
$sql = "
CREATE TRIGGER `_foo_fulltext_update` AFTER UPDATE ON `foo`
  FOR EACH ROW BEGIN
    DELETE FROM `bar` WHERE `bar`=NEW.`bar`;
    INSERT INTO `bar` (bar) SELECT bar FROM `foo` WHERE `bar`=NEW.`bar`;
  END;
";
$mysqli->query($sql);
var_dump($mysqli->error);
$ php i.php 
string(0) ""
$ mysql
mysql> use test;

Database changed
mysql> show triggers\G
*************************** 1. row ***************************
             Trigger: _foo_fulltext_update
               Event: UPDATE
               Table: foo
           Statement: BEGIN
    DELETE FROM `bar` WHERE `bar`=NEW.`bar`;
    INSERT INTO `bar` (bar) SELECT bar FROM `foo` WHERE `bar`=NEW.`bar`;
  END
              Timing: AFTER
             Created: NULL
            sql_mode: 
             Definer: [email protected]
character_set_client: latin1
collation_connection: latin1_swedish_ci
  Database Collation: utf8_general_ci
1 row in set (0.00 sec)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql Real Escape String Hàm PHP Thêm \ vào Mục nhập Trường của Tôi

  2. Lấy dữ liệu từ Cơ sở dữ liệu JDBC vào Jtable

  3. đọc BLOB từ mysql bằng php PDO

  4. Có bất kỳ lỗi ghi nhật ký khi truy vấn mysql không?

  5. Khóa ngoại MySQL BẬT XÓA CASCADE trên 3 bảng