이 질문은 이미 여러 번 질문했다고 말할 수 있습니다! 네 말이 맞아.하지만 그 말은 해줄 수 없어. 내가 삽입 된 데이터 및 삽입 이벤트에 트리거를 사용하여 데이터베이스에 두 개의 VAR를 삽입하려고 , 코드는 여기에 있습니다 :트리거 이벤트에 데이터베이스에 php 변수를 삽입하십시오
<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 >
데이터는 successfuly 표에 삽입 트리거 이벤트도 작동합니다. 그것은이 0을 삽입
(NEW.sent,'$x','$p');";
(NEW.sent,"$x","$p");";
및 기타 그러나 모든 시간 : 내가 함께 노력 웹에 주어진 다양한 솔루션을 살펴보면 0 - 두 나머지 VAR는 항상 "ZERO"로 삽입하면서 그러나 트리거에 NEW.sent가 삽입됩니다 두 값.
$ x 및 $ p의 데이터 유형은 정수이고 표에서이 두 매개 변수에 대해 int 값을 사용했습니다. 이슈가 뭐야?
그 변수의 데이터베이스 필드 INT 당신이 작은 따옴표없이 삽입하지 않아야하는 경우? –
@ TolgaEvcimen : 그렇습니다.하지만이 경우에는 '0'이 삽입됩니다. 나는 PHP에 익숙하지 않으므로 여기에있는 문제에 대해 많이 알지 못한다! – user123