0

この質問はすでに何度も出されていると言うかもしれません。そうです、しかし、それらは私に解決策を与えません。挿入イベントのトリガーを使用して、挿入されたデータと2つの変数をデータベースに挿入しようとしています。コードは次のとおりです。

< 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 >

table1 にデータが正常に挿入され、トリガー イベントも機能します。しかし、トリガー時に NEW.sent が挿入され、残りの 2 つの変数は常に「ZERO」- 0 として挿入されます。

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

およびその他ですが、この2つの値に0を挿入するたびに。

$x と $p のデータ型は Integer で、テーブルでは、この 2 つのパラメーターに int 値を使用しています。どうした?

4

1 に答える 1

1

私が提案するのは:

(NEW.sent, ".$x.", ".$p.");";
于 2013-07-10T06:11:51.703 に答える