Mysql 触发器会在表中进行更改
我正在向数据库中插入几个字段,我可以这样做。我已经触发了一个将数据插入表“插入后”事件的触发器Mysql 触发器会在表中进行更改,mysql,database,triggers,Mysql,Database,Triggers,我正在向数据库中插入几个字段,我可以这样做。我已经触发了一个将数据插入表“插入后”事件的触发器 从 您缺少测力仪和触发器上的端 你到底为什么要用php创建触发器?您不能在MySQL工作台上使用phpMyAdmin创建它吗?触发器应该位于数据库中。。。如果它不应该是永久性的,那么应该在php代码末尾删除它…一旦定义了触发器,每次事件发生时(在您的情况下,在插入temp2之后),MySQL都会自动调用它。但是,在这种情况下,触发器在事件发生后才定义,因此在后续插入发生之前不会被调用。@eggya
从
您缺少测力仪和触发器上的端
你到底为什么要用php创建触发器?您不能在MySQL工作台上使用phpMyAdmin创建它吗?触发器应该位于数据库中。。。如果它不应该是永久性的,那么应该在php代码末尾删除它…一旦定义了触发器,每次事件发生时(在您的情况下,在插入temp2
之后),MySQL都会自动调用它。但是,在这种情况下,触发器在事件发生后才定义,因此在后续插入发生之前不会被调用。@eggyal:即使在插入操作之前定义了触发器,它也不会进行更改!
<html>
<body>
<?php
$id=$_POST['id'];
$a=$_POST['id'];
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$city=$_POST['city'];
$con=mysqli_connect('127.0.0.1:3306' ,'root','root','my_db');
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql1="select * from table2";
$result = mysqli_query($con,$sql1);
echo "<table border='1'>
<tr>
<th>Id</th>
<th>Firstname</th>
<th>Lastname</th>
<th>City</th>
</tr>";
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['fname'] . "</td>";
echo "<td>" . $row['lname'] . "</td>";
echo "<td>" . $row['city'] . "</td>";
echo "</tr>";
}
echo "</table>";
$sql5="INSERT INTO temp2 (id,fname, lname, city)
VALUES
('$_POST[id]','$_POST[fname]','$_POST[lname]','$_POST[city]')";
mysqli_query($con,$sql5);
echo "1 record added";
//--------------- Trigger started ------------------
print "<h2>CREATE MySQL Trigger In PHP</h2>";
echo "<table border='1'>
<tr>
<th>Id</th>
<th>Firstname</th>
<th>Lastname</th>
<th>City</th>
<th>Status</th>
</tr>";
$sql4="select * from temp";
$res = mysqli_query($con,$sql4);
while($row = mysqli_fetch_array($res,MYSQLI_ASSOC))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['fname'] . "</td>";
echo "<td>" . $row['lname'] . "</td>";
echo "<td>" . $row['city'] . "</td>";
echo "<td>" . $row['stat'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
</body>
</html>
delimiter |
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END;
|
delimiter ;