我正在尝试将一个JSON条目插入到我的表中,但是问题是这个JSON字符串有一个单引号字符。当mainIdea的字符串是Its nice时,下面的代码可以很好地工作,但我想要的是带撇号的It's nice。我必须对下面的代码进行哪些更改才能使其与撇号一起工作?我尝试过It\'s nice,但也不起作用。
$jsonDic='{"mainName": "Steve Jobs","mainIdea": "Its nice"}';
$dictionaryToBeAdded=json_decode($jsonDic);
var_dump($dictionaryToBeAdded);
$data=mysql_query("SELECT arrayOfRequests FROM users WHERE email='$email'");
if($result = mysql_fetch_array( $data )) {
//get json encoded arrayOfNotifs
$decodeArray=$result['arrayOfRequests']; //this is empty
//decode it
$arrayOfRequests=json_decode($decodeArray);
//add dictionary to be added
$arrayOfRequests[]=$dictionaryToBeAdded;
$sendBackArray=json_encode($arrayOfRequests);
//update db
mysql_query("UPDATE users SET arrayOfRequests ='$sendBackArray' WHERE email='$email'");
} 发布于 2012-02-17 20:09:19
在尝试在数据库查询中使用数据之前,需要对数据进行转义:
mysql_query("UPDATE users SET arrayOfRequests ='$sendBackArray' WHERE email='$email'");
// ---------------------------------------------^ ^
// --------------------------------------------------------------------------+想象一下,如果$sendBackArray包含', email =',而$email包含' OR '' = ',会发生什么。
mysql_query("UPDATE users SET arrayOfRequests ='" . mysql_real_escape_string($sendBackArray) . "' WHERE email='" . mysql_real_escape_string($email) . "'");发布于 2012-02-17 07:05:38
您还必须转义斜杠:
$jsonDic='{"mainName": "Steve Jobs","mainIdea": "It\\\'s nice"}';https://stackoverflow.com/questions/9320466
复制相似问题