需要一个替代解决方案 - 而不是从触发器调用PHP代码

时间:2014-06-26 04:20:50

标签: php mysql sql database triggers

我有两张表考虑table1和table2 ......

我需要在插入table1后执行触发器.. 触发器必须做一些像

这样的事情

使用select查询从其他两个表中检索数据(它检索多行)使用检索到的数据进行一些计算,然后需要将其作为单行插入到table2中。 我认为它不可能在触发器中执行这些操作。所以我决定从触发器调用一个php文件来完成所有这些事情..但有些人说从触发器调用php实际上并不好,它有一些安全性风险..

我需要你对我的问题的建议...请不要投票或忽视......如果我的问题 目前还不清楚要求我编辑...

2 个答案:

答案 0 :(得分:0)

一个简单的例子可以帮助你。

$sql="INSERT INTO  `table1` (FirstName, LastName, Age)
VALUES ('$firstname', '$lastname', '$age')";

$result = mysql_query($sql) ;

if($result)
{
// Record successfully inserted , place your code which needs to be executed after successful insertion
}

else
{
 // Insertion failed 
}

我假设您将使用mysqli而不是mysql因为PHP 5.5.0不推荐使用mysql_query,但这只是一个帮助您理解逻辑的示例。

答案 1 :(得分:0)

好的,你得到了..在这种情况下,你需要创建一个TRIGGER这样的东西。

CREATE
    TRIGGER `event_name` BEFORE/AFTER INSERT/UPDATE/DELETE
    ON `database`.`table`
    FOR EACH ROW BEGIN
        -- trigger body
        -- this code is applied to every 
        -- inserted/updated/deleted row
    END;

此问题已经回答,请查看以下链接。

MySQL trigger On Insert/Update events

希望这会有所帮助。