是否可以从Mysql触发器传递值到PHP?

时间:2014-06-26 16:48:14

标签: php mysql sql database triggers

我正在使用phpmyadmin,我有一个触发器,在一个表中插入一些条目后执行,在该触发器中我调用一个php文件。但是我需要从触发器传递一个值到php文件..这可能吗?如果是这样建议我一些如何传递它的代码。(该值是表格中插入的新值)帮助我。谢谢!

3 个答案:

答案 0 :(得分:1)

我不是phpmyadmin的专家,但是假设您使用触发器调用您的php文件,如下所示:

dosomething.php

您可以像这样传递$_GET变量:

dosomething.php?username=john

然后您可以在dosomething.php中访问此变量,如下所示:

$username = $_GET['username'];

如果你愿意

  

echo $ username;

它将返回john

答案 1 :(得分:0)

触发器无法返回数据,但它可以更改新插入或更新的记录的值(如果它是BEFORE触发器),也可以更改其他表。

因此,您可以创建一个日志记录表,在触发器中写入一些数据(以某种方式将它们链接到新插入的记录),然后在单独的查询中从PHP读取该数据。

答案 2 :(得分:0)

是的,可能 - 使用具有禁用自动提交的会话变量。

MySQL的:

CREATE TABLE `vtest` (
  `id` INTEGER(11) NOT NULL AUTO_INCREMENT,
  `x` VARCHAR(20) COLLATE utf8_general_ci DEFAULT ''
) ;

CREATE TRIGGER `trg_vtest_before_ins` BEFORE INSERT ON `vtest`
  FOR EACH ROW
BEGIN
    set @x=new.x;
END;

PHP:

    $this->db->query("replace into vtest values(1,2)");
    if ($res = $this->db->query ( "select @x as x" )) {
        while ( $obj = $res->fetch_object () ) {
                print_r($obj);
        }
        $res->close ();
    }
    $this->db->commit();