javascript - PHP MySQL 查询在实际提交的行之前插入 3 行(来自 w2ui 表)

标签 javascript php arrays json w2ui

我收到来自 w2ui 的请求表从表单将数据插入到我的数据库中。 我能够成功提交数据,但每次我提交表单一次时,它都会提交 3 个其他条目。

enter image description here

我尝试了 stripcslashes 并转义字符串,但这不是问题

以下是未 trim 的请求的外观:

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

以下是 trim 后的请求的外观:

我将字段填写为 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"}}

必须对请求进行 trim 和处理才能获得 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(),但在我看来,您只对 json 数据的“记录”部分感兴趣。然后你可以删除 foreach 并执行

$row = $array['record'];

关于javascript - PHP MySQL 查询在实际提交的行之前插入 3 行(来自 w2ui 表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54257336/

相关文章:

javascript - JavaScript/HTML 中的待办事项列表

php - XML 解析属性 PHP $string = value ;

php - 使用 PDO 向 MySQL 数据库中插入数据

javascript - Bootstrap 具有多种形式的单一模式窗口

PHP 在空值上合并数组

java - 任意维度的数组作为方法参数

javascript - 如何在 Angular js 测试中指定 http 响应顺序?

javascript - 在 HTML <canvas> 中动态定位按钮

c# - 密码的按需正则表达式

javascript - 如何检查数组中的任何日期是否在日期范围内?