JSON数组和PHP问题

时间:2011-08-15 10:06:07

标签: php mysql arrays json

  

阵列   0 =>    排列     'categoryID'=>字符串'1'(长度= 1)    'category'=>字符串'餐馆'(长度= 11)   'subcategory'=>字符串'中文'(长度= 7)

     
    

'subcategoryID'=>字符串'12'(长度= 2)

  

如何在MYSQL中获取此数据。我已经尝试过JSON_Decode,但问题是我将"Array"存储在MYSQL中而不是字符串中。

请帮忙。对不起,我是stackoverflow的新手。我跟随的是具有数据库结构的基本代码:

CategoryID Int(5),Category Var(254),Subcategory Var(254),SubCategoryID Int(5)。

以下是我使用的代码:

<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("cp");
$alldate = '[{ "categoryID": "1", "category": "Restaurants", "subcategory": "Chinese", "subcategoryID": "12" }]';
$json = json_decode($alldate);
$i=0;
foreach ($json  as $k1=>$v1) {
    echo $i;
  foreach($v1 as $k2=>$v2){
    if ($k2 == 'categoryID')$vals['categoryID'][]=$v2;
    if ($k2 == 'category')$vals['category'][]=$v2;
    if ($k2 == 'subcategory')$vals['subcategory'][]=$v2;
    if ($k2 == 'subcategoryID')$vals['subcategoryID'][]=$v2;
  }
    $insert_categoryID[]='Name:'.$vals['categoryID'][$i];
    $insert_category[]= $vals['category'][$i];
    $insert_subcategory[]= $vals['subcategory'][$i];
    $insert_subcategoryID[]= $vals['subcategoryID'][$i];
    }

    print_r($insert_categoryID);
    print_r($insert_category);
    print_r($insert_subcategory);
    print_r($insert_subcategoryID);
    ?>

感谢您的回答。我正在使用此处提供的解决方案进行检查

3 个答案:

答案 0 :(得分:2)

在你的阵列上(例如$array),你需要做一个foreach:

$array = json_decode($json);
$inserts = "";
$values = "";
foreach($array as $key => $value){
     $inserts .= "'$key', ";
     $values .= "'$value', ";
}
$inserts = substr($inserts,0,-2);
$values =  substr($values,0,-2);
$query = mysql_query("INSERT INTO `table` (".$inserts.") VALUES (".$values.")")or die(mysql_error());

写盲,它应该有用

答案 1 :(得分:2)

尝试类似:

for($x=0; $x<count($arrayJson); $x++){
    $sql = "Insert into TABLENAME (field1, field2) VALUES (".$arrayJson[$]['categoryID'].", '".$arrayJson[$]['category']."')";
}

假设你知道你的Json结构和数据库结构。

答案 2 :(得分:1)

Array是因为它是一个数组。你必须把它放在那里

$decoded = json_decode($json);
$query = "INSERT INTO something VALUES ('".mysql_real_escape_string($json[0]['categoryID'])."','".mysql_real_escape_string($json[0]['category'])."','".mysql_real_escape_string($json[0]['subcategory'])."','".mysql_real_escape_string($json[0]['subcategoryID'])."')";