2016-08-06 5 views
0

外部URLから取得しているjsonデータがあります。私はデータを格納していますが、アポストロフィ「Tes't2」を持つ値はスキップされているようです。私は人々がこれをエスケープすると言うことを見てきましたが、私はこれを行う方法がわかりません。私はnoobieだ。ありがとう!ここでPhp Cant insertデータベースへのアポストロフィ付きのJsonデータ

は私のPHPでここ

$filename = "http://www.someurl.com/data.json"; 
$data = file_get_contents($filename); 
$array = json_decode($data, true); 

foreach($array as $row) 
{ 
     $sql = "INSERT INTO table_popular_items(rank, name) VALUES (
     '".$row["rank"]."', 
     '".$row["name"]."' 
    )";  
     mysqli_query($connect, $sql);  
} 

はdata.json

[ 
    { 
     "rank": 1, 
     "name": "Test1" 
    }, 
    { 
     "rank": 2, 
     "name": "Tes't2" 

    }, 
    { 
     "rank": 3, 
     "name": "Test3" 
    } 

ある]

+1

クエリを使用して、クエリに変数を連結しないでください。ここをクリックしてください:http://php.net/manual/en/mysqli.prepare.phpここ:http://php.net/manual/en/mysqli-stmt.bind-param.php –

答えて

0

このお試しください:使用mysqli_real_escape_string($con, $YOUR_VARIABLE);が動作するはず

$sql = "INSERT INTO `table_popular_items`(`rank`, `name`) VALUES (
    '".$row["rank"]."', 
    '".addslashes($row["name"])."' 
)"; 
+0

エラーが表示されます - 未定義の関数addslash() – Alex

+1

addslashesが機能しました!どうもありがとうございました!!! – Alex

関連する問題