在触发事件时在数据库中插入php变量

在触发事件时在数据库中插入php变量,php,mysql,database,insert,Php,Mysql,Database,Insert,你可能会说这个问题已经问了很多次了! 你说得对,但这些都不能给我解决办法。 我试图使用插入事件上的触发器将插入的数据和两个var插入数据库,代码如下: < html > <body > <?php $s = $_POST['sent']; echo "Entered sentence : $s"; $a = array(); $b = array(); if (preg_match_all('/[^=]*=([^;@]*)/', shell_exec("/ho

你可能会说这个问题已经问了很多次了! 你说得对,但这些都不能给我解决办法。 我试图使用插入事件上的触发器将插入的数据和两个var插入数据库,代码如下:

< html > <body > 
<?php 

$s = $_POST['sent'];
echo "Entered sentence : $s";
$a = array();
$b = array();
if (preg_match_all('/[^=]*=([^;@]*)/', shell_exec("/home/technoworld/Videos/LinSocket/client '$s'"), $matches))
//if (preg_match_all('/[^=]*=([^;@]*)/', shell_exec('/home/technoworld/Videos/LinSocket/client '.escapeshellarg($s)), $matches))
{
    $a[] = (int) $matches[1][0];    //optionally cast to int
    $b[] = (int) $matches[1][1];
}

$x = (int) $matches[1][0];
$y = (int) $matches[1][1];

$p=10;
$q=20;
echo $x;
echo "<br/>";
echo $p;
echo "<br/>";


//---------------DB stuff --------------------

$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 temp VALUES (NEW.sent,'".$x."','".$p."');";
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 >
和其他,但每次为这两个值插入0

$x和$p的数据类型是整数,在表I中,这两个参数取int值。问题是什么?

我的建议是:

(NEW.sent, ".$x.", ".$p.");";

如果这些变量的数据库字段是int,那么您不应该在不使用单引号的情况下插入它们吗?@TolgaEvcimen:是的,应该是这样,但在这种情况下,它会插入“0”。我是PHP新手,所以不太了解这里的问题!这也不行!问题是不同的。当我在上面的php文件中创建触发器代码时,它也工作得很好。因为创建触发器的部分是Mysql触发器
分隔符$$CREATE/*[DEFINER={user | CURRENT_user}]*/trigger
test
MysqlTrigger`在插入
test
table1
之后,为每行开始插入临时值(New.sent,$x','y');结束$$DELIMITER;`。在这里,我如何检索“$x”和“$y”?
(NEW.sent, ".$x.", ".$p.");";