json配列に変換し、json文字列をMySQLに解析して、それが私に最も合理的であるようにしました。さらに、私はすでにjson文字列に変換することができました。この特定の種類のデータをMySQLに追加する方法
JSON.stringify(res);
これは正しい方法ですか? MySQLにx、y、widht、およびheightを追加するにはどうすればよいですか?問題はPHPスクリプトでJavascript変数を読むことができないということです。あなたは間違っている単一引用符は、引用符のsequnceをdoubeのと
$sql = "INSERT INTO new(x, y, width, height) VALUES('" .$row[$x].
"', '" .$row[$y]."', '".$row[$width]. "', '".$row[$height]."')";
は、このようにVARSを使用してSQLインジェクションのために知っておく..正しい文字列の連結を構築していない持って
$('#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'として読み込みます。また、準備されたステートメントを使用する必要があります。 – apokryfos
申し訳ありませんが、私のコードでは、すべて「名前」と呼ばれていました。準備されたステートメントを使用すると私のエラーが修正されますか? –
エスケープされていないパラメータ関連のエラーを修正します(たとえば、これらのパラメータのいずれかに引用符がある場合)。また、自動SQLインジェクション攻撃からあなたを守ります。 PHPに正しく渡されるためには、おそらく 'encodeURI(JSON.stringify(res))'も必要です。また、 'click'イベントの中にリダイレクトを含めることを意味しましたか? – apokryfos