json.stringify转换为数组php不插入mysql

时间:2015-11-06 01:52:40

标签: php mysql arrays json

我正在尝试从json.stringify向数据库插入一些数据。特别是我做了以下几点:

$('#get-checked-data').on('click', function(event) {
    event.preventDefault(); 
    var checkedItems = [];
    $("#check-list-box li.active").each(function() {
         var $this = $(this);
        var checkedItem = { subarea: $this.attr('data-value') };
    checkedItems.push(checkedItem);
    });

    var lawcase = JSON.stringify(checkedItems);

    $('#display-json').html("<input type='text' name='case' value='" + 

lawcase + "' readonly >");
        });
});

json.stringify的值如下所示:

[{ “分区”: “1”},{ “分区”: “2”}]

我选择数据并通过POST将其发送到处理信息的类。

$user->case=$_POST['case'];

然后我操纵数据将字符串转换为数组:

$query = 'INSERT INTO subarea (id,subarea_id,area_id) VALUES (:a,:b,:c)';



  $usercase=$this->case;
   $check=json_decode($usercase,true);
$stmt = $this->conn->prepare($query);

并且数组看起来像这样,对我来说它似乎不正确但我是新的数组而不是如何解决这个错误:

array(2){[0] =&gt; array(1){[“subarea”] =&gt; string(1)“1”} [1] =&gt; array(1){[“subarea”] =&gt; string(1)“2”}}

最后我运行foreach来插入

    $stmt = $this->conn->prepare($query);
 foreach($check as $key => $item)
{           
    $stmt->bindValue(':a',$this->user_id) ;
    $stmt->bindValue(':b', $item['subarea']);
    $stmt->bindValue(':c', $areavalue);//This comes from another variable, don't pay atention.
    $stmt->execute();
}

但是我在$ stmt-&gt; bindValue(':b',$ item)中收到了Notice:Array to string conversion;线。我已经尝试了几乎所有的real_escape_string,编码,解码所有的东西,但我仍然得到一个不成功的输出。我已经检查了stackflow和其他网站,手册和我遗漏的东西不能让我解决问题。

希望有人可以帮助我,提前谢谢你。

编辑:代码是正确的,我使用共享服务器,问题来自本服务器的配置。谢谢你的回应。

1 个答案:

答案 0 :(得分:0)

您需要引用子区域密钥,例如$ item [&#39; subarea&#39;]而不是数组本身,否则它会为数组提供字符串转换错误。