如何将json文件存储在php数据库中

时间:2014-01-18 09:23:33

标签: php json

  1. 请给我一个例子,其中代码是j存储在PHP MySQL数据库中的文件数据,格式相同也请创建数据库并创建j子文件,

2 个答案:

答案 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'];

你应该做一些试验和错误,而不是指望人们完全写出来。