我的页面上有一个 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/