php - 将 JSON 中的值插入数据库

标签 php mysql arrays json

我的页面上有一个 JSON 数组。随着时间的推移,它会通过一些用户交互添加到其中。当用户完成后,他们需要将此数组提交到一个页面,在该页面中他们的信息通过 php 添加到 mySQL 表中。我通过 AJAX 对页面的调用如下,其中 answersArray 是数组

$.ajax({
    type: "POST",
    dataType: "json",
    data: answersArray,
    url: 'sendToUsersFeedback.php',
});

数组看起来像这样:

[
    {
        "USERID": "3",
        "INDVID": "0",
        "RATING": "1",
        "CONFIDENCE": "8"
    },
    {
        "USERID": "3",
        "INDVID": "1",
        "RATING": "1",
        "CONFIDENCE": "88"
    }
]

这就是我感到困惑的地方。我需要解码这个传入的 json,然后循环遍历它,为每个数组项添加一条新记录(USERID、INDVID、RATING 和 CONFIDENCE 组成一个记录等。)我在此数组中可以有多达 20 个记录。我知道 USERID 不是唯一的。已经设置好了。

这是我搞砸的 php 方面。如何解码传入的数组并遍历它。我尝试过以下方法

$sql = json_decode(data,true);
foreach( $data as $row ) {
    $sql[] = '("'.mysql_real_escape_string($row['USERID']).'", '.$row['INDVID'].','.$row['RATING'].','.$row['CONFIDENCE'].')';
}
mysql_query('INSERT INTO users_feedback (USERID, INDVID, RATING. CONFIDENCE) VALUES '.implode(',', $sql));

我很接近吗?我很困惑。提前致谢。

最佳答案

首先,为您要发布的数据命名:

$.ajax({
    type: "POST",
    dataType: "json",
    data: {
      my_data: answersArray
    },
    url: 'sendToUsersFeedback.php',
});

然后,在您的 PHP 代码中恢复您的数据:

$data = $_POST['my_data'];
$sql = json_decode($data, true);
...

您应该知道,每个人都可以在客户端编辑 JSON,因此以这种方式将数据插入数据库是极其危险的。

关于php - 将 JSON 中的值插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12376501/

相关文章:

php - Laravel - Eloquent 地更改默认值

mysql - 如何在 C 中导出不透明类型

java - 读取文件文本的特定部分,然后将它们添加到数组中

javascript - 如何导入外部JSON并在php中显示

php - 使用此代码检查YouTube视频是否可嵌入

php - 从 MySQL 列创建 PHP 数组,使用 auto_increment 列作为索引

mysql - 如何从 shell 脚本执行 MySQL 命令?

php - 提取不包括的跨表重复项。表重复项

c# - 错误 : Index was outside the bounds of the array.

带有 Int 数组的 Java HashMap