如何将这种特定类型的数据添加到MySQL中

时间:2017-03-12 20:06:40

标签: javascript php mysql json

我试图把它变成一个json数组并将json字符串解析成MySQL,因为这对我来说是最有意义的。另外,我已经设法使用:

将其转换为json字符串
 JSON.stringify(res);

这是正确的方法吗?如何在MySQL中添加x,y,widht和height?我认为问题在于我无法在PHP脚本中读取Javascript变量。

 $('#save').click(function(){
      var res = _.map($('.grid-stack .grid-stack-item:visible'), function (el) {
el = $(el);
var node = el.data('_gridstack_node');
return {
    id: el.attr('data-custom-id'),
    x: node.x,
    y: node.y,
    width: node.width,
    height: node.height
};
});
window.location.href = "index.php?name=" + JSON.stringify(res);
<?php


if (isset($_GET['name'])) {
$con = mysqli_connect("localhost", "root", "", "grids");

 $jsondata = $_GET['name'] ;

 $data = json_decode($jsondata, true);

 $x = $data['x'];
 $y = $data['y'];
 $width = $data['width'];
 $height = $data['height'];

 foreach($data as $row){
 $sql = "INSERT INTO new(x, y, width, height) VALUES('".$row[$x]."', '".$row[$y]."', '".$row[$width]."', '".$row[$height]."')";
 mysqli_query($con, $sql);
 }
}

?>
});

1 个答案:

答案 0 :(得分:2)

你有错误的单引号doube引用sequnce并且不构建正确的字符串连接..

$sql = "INSERT INTO new(x, y, width, height) VALUES('" .$row[$x]. 
      "', '" .$row[$y]."', '".$row[$width]. "', '".$row[$height]."')";

请注意以这种方式使用vars进行sqlinjection ...你应该使用正确的参数化sql prepare