Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php无法将带撇号的Json数据插入数据库_Php_Mysql_Json_Mysqli - Fatal编程技术网

Php无法将带撇号的Json数据插入数据库

Php无法将带撇号的Json数据插入数据库,php,mysql,json,mysqli,Php,Mysql,Json,Mysqli,我有一些从外部url检索的json数据。我正在存储数据,但似乎忽略了带有撇号“Tes't2”的值。我见过有人说要逃避这一点,但我不知道如何做到这一点。我是个疯子。谢谢 这是我的php $filename = "http://www.someurl.com/data.json"; $data = file_get_contents($filename); $array = json_decode($data, true); foreach($array as $row) {

我有一些从外部url检索的json数据。我正在存储数据,但似乎忽略了带有撇号“Tes't2”的值。我见过有人说要逃避这一点,但我不知道如何做到这一点。我是个疯子。谢谢

这是我的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"
    }
]试试这个:

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

使用
mysqli\u real\u escape\u字符串($con,$YOUR\u变量)应该可以工作


Doc:

使用准备好的查询,不要将变量连接到查询中。请看这里:和这里: