我有一个插入句子并执行触发操作的php文件,如下所示:
< html > <body >
<?php
$s = $_POST['sent'];
echo "Entered sentence : $s";
if (preg_match_all('/[^=]*=([^;@]*)/', shell_exec("/home/technoworld/Videos/LinSocket/client '$s'"), $matches)) //Values stored in ma.
{
$x = (int) $matches[1][0]; //optionally cast to int
$y = (int) $matches[1][1];
}
$con = mysqli_connect('127.0.0.1:3306', 'root', 'root', 'test');
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: ".mysqli_connect_error();
}
// $sql2 = "CREATE TRIGGER MysqlTrigger AFTER INSERT ON table1 FOR EACH ROW BEGIN INSERT INTO temp1(sent,pindex,nindex) VALUES (NEW.sent,".$x.",".$y.");";
mysqli_query($con,$sql2);
$sql1 = "INSERT INTO table1 (sent)VALUES('$_POST[sent]')";
if (!mysqli_query($con, $sql1)) {
die('Error: '.mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
</html > </body >
并在mysql中触发:
DELIMITER $$
DROP TRIGGER /*!50032 IF EXISTS */ `test`.`MysqlTrigger`$$
CREATE
/*!50017 DEFINER = 'root'@'localhost' */
TRIGGER `MysqlTrigger` AFTER INSERT ON `table1`
FOR EACH ROW BEGIN
INSERT INTO temp VALUES(New.sent,'$x','$y');
END;
$$
DELIMITER ;
我希望 test.php 中的 $x 和 $y 应该在插入操作时插入到数据库中。NEW.sent 可以插入到现有代码中,而 x 和 y 为 0,0。
如果可能的话,我想在触发器上插入 test.php 本身的 sent,x 和 y 。
我尝试使用上面的 test.php 删除触发器部分的注释并从 mysql 数据库中删除触发器。但它仅在 temp 未更新时才在 table1 中插入句子。