2016-08-06 2 views
0

У меня есть данные json, которые я извлекаю из внешнего URL-адреса. Я храню данные, но кажется, что значения, которые имеют апостроф «Tes't2», пропускаются. Я видел, как люди говорят, чтобы процитировать это, но я не уверен, как это сделать. Я нооби. Благодаря!Php Cant вставляет данные 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

Попробуйте это:

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

Ошибка возникает - undefined function addedlash() – Alex

+1

addlashes работал! Большое спасибо!!! – Alex