2017-03-12 12 views
1

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); 
} 
} 

?> 
}); 
+0

これはすべて 'index.php'ですか?そうであれば、JSONを 'name ='として送信しますが、 'work'として読み込みます。また、準備されたステートメントを使用する必要があります。 – apokryfos

+0

申し訳ありませんが、私のコードでは、すべて「名前」と呼ばれていました。準備されたステートメントを使用すると私のエラーが修正されますか? –

+0

エスケープされていないパラメータ関連のエラーを修正します(たとえば、これらのパラメータのいずれかに引用符がある場合)。また、自動SQLインジェクション攻撃からあなたを守ります。 PHPに正しく渡されるためには、おそらく 'encodeURI(JSON.stringify(res))'も必要です。また、 'click'イベントの中にリダイレクトを含めることを意味しましたか? – apokryfos

答えて

2

..あなたは適切なパラメータ化を使用shoul SQLの準備

+0

修正済みですが、まだMySQLテーブルを更新していません。コンソールに、私はこのエラーがあると言います:return文の後の到達不能なコードです。それはこれに歓迎している: window.location.href = "index.php?name =" + JSON.stringify(res); –

+0

あなたはjavascriptでリターンを持っています..この目的は関数.. ..リターン後にコードを実行することはできません。あなたのコードに間違ったロジックがあります。 – scaisEdge

+0

私はそれが意味をなさないことを知ります。私はまだ何も変えていない。上記のコードを更新しました。私のコードのロジックは正しいですか? –

関連する問題