首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在尝试将值插入JSON数组

正在尝试将值插入JSON数组
EN

Stack Overflow用户
提问于 2012-02-17 07:02:45
回答 2查看 247关注 0票数 1

我正在尝试将一个JSON条目插入到我的表中,但是问题是这个JSON字符串有一个单引号字符。当mainIdea的字符串是Its nice时,下面的代码可以很好地工作,但我想要的是带撇号的It's nice。我必须对下面的代码进行哪些更改才能使其与撇号一起工作?我尝试过It\'s nice,但也不起作用。

代码语言:javascript
复制
$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'");
} 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-17 20:09:19

在尝试在数据库查询中使用数据之前,需要对数据进行转义:

代码语言:javascript
复制
mysql_query("UPDATE users SET arrayOfRequests ='$sendBackArray' WHERE email='$email'");
// ---------------------------------------------^                            ^
// --------------------------------------------------------------------------+

想象一下,如果$sendBackArray包含', email =',而$email包含' OR '' = ',会发生什么。

代码语言:javascript
复制
mysql_query("UPDATE users SET arrayOfRequests ='" . mysql_real_escape_string($sendBackArray) . "' WHERE email='" . mysql_real_escape_string($email) . "'");
票数 1
EN

Stack Overflow用户

发布于 2012-02-17 07:05:38

您还必须转义斜杠:

代码语言:javascript
复制
$jsonDic='{"mainName": "Steve Jobs","mainIdea": "It\\\'s nice"}';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9320466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档