PHP MySQL 查询在实际提交的行之前插入 3 行(来自 w2ui table)
PHP MySQL query inserts 3rows before actual submitted row (from w2ui table)
我收到来自 w2ui table 的请求,要将数据从表单插入到我的数据库中。
我能够成功提交数据,但每次我提交一次表格时它都会提交 3 个其他条目。
我试过 stripcslashes
并转义字符串,但这不是问题所在
这是未修剪的请求的样子:
request=%7B%22cmd%22%3A%22save%22%2C%22recid%22%3A0%2C%22name%22%3A%22foo%22%2C%22record%22%3A%7B%22imei%22%3A%22doe%22%2C%22mobile_no%22%3A%22Doe%22%2C%22iccid%22%3A%22jdoe%40email.com%22%2C%22driver%22%3A%22jdoe%22%2C%22company%22%3A%22jdoe%40email.com%22%2C%22type%22%3A%22jdoe%40email.com%22%2C%22channels%22%3A%22jdoe%40email.com%22%2C%22cameras%22%3A%22jdoe%40email.com%22%7D%7D
修剪后的请求如下所示:
我填写了 0
的字段以进行测试。
{"cmd":"save","recid":0,"name":"foo","record":{"imei":"0","mobile_no":"0","iccid":"0","driver":"0","company":"0","type":"0","channels":"0","cameras":"0"}}
必须修剪和处理请求以获得 Json 格式。
这是我的 PHP 提交请求的代码:
<?php
//get request a put into variable
$input = file_get_contents('php://input');
$decoded = urldecode($input);
//trim "request=" off
$Trimmed = trim($decoded, 'request=');
//con vars
$servername = "servername";
$username = "username";
$password = "password";
$dbname = "dbname";
//time vars
$date_added1 = date("Y-m-d");
$time_added1 = date("h:i:sa");
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
$array = json_decode($Trimmed, true);
foreach($array as $row)
{
$sql = "INSERT into `adddevices` (imei, mobile_no, iccid, driver, company, type, channels, date_added, time_added, cameras)
VALUES ('".$row["imei"]."', '".$row["mobile_no"]."', '".$row["iccid"]."', '".$row["driver"]."', '".$row["company"]."', '".$row["type"]."', '".$row["channels"]."', '$date_added1', '$time_added1', '".$row["cameras"]."')";
mysqli_query($conn, $sql);
}
echo "Data inserted";
mysqli_close($conn);
?>
我预计它会提交一次条目。
您在 $array
上 运行 foreach()
,但在我看来您只对 [=16= 的 "record" 部分感兴趣] 数据。然后你可以放下 foreach 并做
$row = $array['record'];
我收到来自 w2ui table 的请求,要将数据从表单插入到我的数据库中。 我能够成功提交数据,但每次我提交一次表格时它都会提交 3 个其他条目。
我试过 stripcslashes
并转义字符串,但这不是问题所在
这是未修剪的请求的样子:
request=%7B%22cmd%22%3A%22save%22%2C%22recid%22%3A0%2C%22name%22%3A%22foo%22%2C%22record%22%3A%7B%22imei%22%3A%22doe%22%2C%22mobile_no%22%3A%22Doe%22%2C%22iccid%22%3A%22jdoe%40email.com%22%2C%22driver%22%3A%22jdoe%22%2C%22company%22%3A%22jdoe%40email.com%22%2C%22type%22%3A%22jdoe%40email.com%22%2C%22channels%22%3A%22jdoe%40email.com%22%2C%22cameras%22%3A%22jdoe%40email.com%22%7D%7D
修剪后的请求如下所示:
我填写了 0
的字段以进行测试。
{"cmd":"save","recid":0,"name":"foo","record":{"imei":"0","mobile_no":"0","iccid":"0","driver":"0","company":"0","type":"0","channels":"0","cameras":"0"}}
必须修剪和处理请求以获得 Json 格式。
这是我的 PHP 提交请求的代码:
<?php
//get request a put into variable
$input = file_get_contents('php://input');
$decoded = urldecode($input);
//trim "request=" off
$Trimmed = trim($decoded, 'request=');
//con vars
$servername = "servername";
$username = "username";
$password = "password";
$dbname = "dbname";
//time vars
$date_added1 = date("Y-m-d");
$time_added1 = date("h:i:sa");
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
$array = json_decode($Trimmed, true);
foreach($array as $row)
{
$sql = "INSERT into `adddevices` (imei, mobile_no, iccid, driver, company, type, channels, date_added, time_added, cameras)
VALUES ('".$row["imei"]."', '".$row["mobile_no"]."', '".$row["iccid"]."', '".$row["driver"]."', '".$row["company"]."', '".$row["type"]."', '".$row["channels"]."', '$date_added1', '$time_added1', '".$row["cameras"]."')";
mysqli_query($conn, $sql);
}
echo "Data inserted";
mysqli_close($conn);
?>
我预计它会提交一次条目。
您在 $array
上 运行 foreach()
,但在我看来您只对 [=16= 的 "record" 部分感兴趣] 数据。然后你可以放下 foreach 并做
$row = $array['record'];