【问题标题】:How to add this specific type of data into MySQL如何将这种特定类型的数据添加到 MySQL
【发布时间】:2017-03-12 20:06:39
【问题描述】:

我尝试将其转换为 json 数组并将 json 字符串解析为 MySQL,因为这对我来说最有意义。另外,我已经设法使用以下方法将其转换为 json 字符串:

 JSON.stringify(res);

这是正确的方法吗?如何将 x、y、宽度和高度添加到 MySQL 中?我认为问题在于我无法在 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);
 }
}

?>
});

【问题讨论】:

  • 这一切都在index.php 中吗?如果是这样,那么您将 JSON 发送为name=,但将其读取为work。您还应该使用准备好的语句。
  • 对不起,在我的代码中它都被称为“名称”。使用准备好的语句会修复我的错误吗?
  • 它将修复任何未转义的参数相关错误(例如,如果任何这些参数中有引号)。它还将保护您免受自动 SQL 注入攻击。您可能还需要encodeURI(JSON.stringify(res)) 才能将其正确传递给 PHP。你的意思是在click 事件中包含重定向?

标签: javascript php mysql json


【解决方案1】:

你有错误的单引号双引号序列并且没有建立正确的字符串连接..

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

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

【讨论】:

  • 修复它,仍然没有更新 MySQL 表。控制台说我有这个错误:return 语句后无法访问代码。它指的是:window.location.href = "index.php?name=" + JSON.stringify(res);
  • 您在 javascript 中已返回 .. 这结束了函数 .. .. 无法在返回后运行代码 .. 您的代码逻辑错误 ..
  • 我明白了,这是有道理的。我进行了更改,但仍然一无所获。我更新了上面的代码,现在我的代码中的逻辑是否正确?
  • 我不知道你真正想要做什么..乍一看似乎你有混合客户端和服务器代码..在同一个..记住这两部分是在不同的时间和不同的地方..您应该在一个源中定义客户端代码,在另一个源中定义服务器代码...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
  • 2019-05-05
  • 1970-01-01
相关资源
最近更新 更多