答案 0 :(得分:1)
Json是一种类型的数组。在保存到mysql之前,您应该使用serialize()
函数。当您读取使用unserialize()
函数存储的数据时,您需要使用serialize()
。
示例:
// while save into mysql
$savadata=serialize($myarray);
// while read from mysql
$normalarray=unserialize($savadata);
答案 1 :(得分:0)
首先,在使用serialize()回答之前,您应该知道它不允许您轻松使用您存储的数据。如果您想要阅读该数据或在查询中使用它,您将遇到麻烦。此外,它意味着您必须提取整个记录,在另一侧使用它以进行更改然后更新整个记录,因此您必须确保在此过程中不删除或更改其他字段。
拥有一个专用于JSON数据的表,每个数组的字段值通常更好,除非您有其他其他关键字段,您将永远不需要直接获取JSON数组数据。
既然你的问题很模糊,你想要帮助创建数据库(你的意思是表吗?)我猜你应该只是参考这个地方的一些教程。如果您没有告诉我们您要存储的数据类型,我们不知道您需要什么样的表结构。
即使您没有关于SQL的任何内容,您也可以使用PHPMyAdmin构建表,但您可能需要进行一些研究以确保正确设置字段类型。设置好表格后,由于PHP's inbuilt JSON functions,您应该可以轻松完成工作。
不确定您是否正在接收JSON数据并希望存储它,反之亦然。通常你会做类似的事情:
$phparray = json_decode($yourarray);
您可能需要在此处执行操作以检查字段数。如果你知道会发生什么,你可能知道只有2个字段,如果没有,你可能需要检查字段数。
$insert = mysql_query("INSERT INTO tablename (col1,col2) VALUES($phparray[0],$phparray[1]);
当然,如果您真的想序列化()数据,您也可以这样做并存储在一个字段中。
回答以下问题:
$json = '{ "Title": "The Cuckoo\'s Calling", "Author": "Robert Galbraith", "Genre": "classic crime novel", "Detail": { "Publisher": "Little Brown", "Publication_Year": 2013, "ISBN-13": 9781408704004, "Language": "English", "Pages": 494 } }';
$stdobject = json_decode($json);
print_r($stdobject);
//This will output a standard object, but if you want an array do:
$array = json_decode($json, true);
print_r($array);
为你做这件事......
$json= '{ "Title": "The Cuckoo\'s Calling", "Author": "Robert Galbraith", "Genre": "classic crime novel", "Detail": { "Publisher": "Little Brown", "Publication_Year": 2013, "ISBN-13": 9781408704004, "Language": "English", "Pages": 494 }, "Price": [ { "type": "Hardcover", "price": 16.65 }, { "type": "Kidle Edition", "price": 7.03 } ] }';
$array= json_decode($json,true);
print_r($array); //this is to test that the array is set
echo '<br>';
echo '<br>';
echo $array['Price'][1]['price'];
你应该做一些试验和错误,而不是指望人们完全写出来。