PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了通过PHP创建mysql触发器?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 PHP5.3中执行以下操作:
$sql = "
CREATE trigGER `_photo_fulltext_insert` AFTER INSERT ON `photo` FOR EACH ROW INSERT INTO `_photo_fulltext` SELECT * FROM `photo` WHERE `id`=NEW.`id`;
CREATE trigGER `_photo_fulltext_delete` AFTER deletE ON `photo` FOR EACH ROW deletE FROM `_photo_fulltext` WHERE `id`=OLD.`id`;

DELIMITER |
CREATE trigGER `_photo_fulltext_update` AFTER updatE ON `photo`
  FOR EACH ROW BEGIN
    deletE FROM `_photo_fulltext` WHERE `id`=NEW.`id`;
    INSERT INTO `_photo_fulltext` SELECT * FROM `photo` WHERE `id`=NEW.`id`;
  END;
|
DELIMITER ;
";

$MysqLi->multi_query($sql);

未创建“photo_fulltext_update”触发器.此语句在@L_50_4@myAdmin中运行(并创建所有触发器).我在网上看过MysqL服务器根本不支持DELIMITER语句,所以我正在寻找一种方法来重写这个多步CREATE trigGER语句,以便MysqLi :: multi_query可以将它发送到MysqL .

谢谢!

MysqLi在多查询语句中没有任何与DELIMITER相关的东西,但它在普通查询中根本不对任何分隔符做任何事情,所以只需逐个推送你的触发器:
$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: root@localhost
character_set_client: latin1
collation_connection: latin1_swedish_ci
  Database Collation: utf8_general_ci
1 row in set (0.00 seC)

大佬总结

以上是大佬教程为你收集整理的通过PHP创建mysql触发器?全部内容,希望文章能够帮你解决通过PHP创建mysql触发器?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。