从json数据转义单引号没有解决方案工作


escaping single quote from json data no solution working

我从一个网站得到json数据。但是在数据中有一个单引号导致了这个问题。你会建议我做什么我已经尝试str_replace不工作,请帮助

代码

$string=file_get_contents('http://website');
$string=str_replace("'", "''", $string);//not working
$json=json_decode($string);
foreach($json as $p)
{
$query="INSERT INTO abc(id,
name,
address,
address2,
storeID,
) VALUES('$p->id',
'$p->name',
'$p->address',
'$p->address2',
'$p->storeID',
)";
mysql_query($query) or die(mysql_error());
}

如果我使用str_replace,这个错误会出现

Warning: Invalid argument supplied for foreach()

用单引号代替单引号。相反,您需要:

$string = str_replace("'", '"', $string);

同样,不能在SQL语句中插入用户输入。使用准备好的语句或对用户输入进行编码。

$string = str_replace("'", '"', $string);