php mysql 解析 json_PHP json的插入和解析在数据库中的操作

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。

PHP中往数据库中存储json数据在项目开发中也经常遇到,下面我就写个往数据库中存储json的例子。

在PHP操作数据库当中,将json数据存入数据库中,还得把这个数据从数据库中解析出来。说实在的,我也不知道这个有什么作用,但是我觉得反正是技术上的东西,总是有用的。

仁者见仁,智者见智。php到现在为止学了有一个半星期吧,不足之处,往大家指正,非常的感谢。

还是先建库:在mysql下建库,代码如下:

CREATE TABLE `t_json` (

`id` int(11) NOT NULL AUTO_INCREMENT ,`json` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,PRIMARYKEY(`id`)

)

ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci

AUTO_INCREMENT=18ROW_FORMAT=COMPACT;

就两个字段,一个是 id,一个是json。

一、假设建一个页面,命名为input.php,具体代码如下:

1

2

3

4

id:

5

6

7

8

9

10

class:

11

12

13

14

15

16

17

18

19

20

21

22

action到json.php界面,method方法是post方法。

在json.php界面中,代码如下:

1 <?php2 @$id = $_POST['userid'];3 @$class = $_POST['userclass'];4 $array = array(5 'userid'=>$id,

6 'userclass'=>$class,

7 );8 $jsonId = json_encode($array);//将array数组变成json数据9 //$jsonId = addslashes($jsonId);

10

11 echo $jsonId."
";12 print_r($array);13

14 $dbms = "mysql";//选择数据库类型,MySQL

15 $host = "127.0.0.1"; //选择服务器

16 $userName = "";//用户名

17 $psw = "";18 $dbName = "dbtext";//数据库名称

19 $dsn = "$dbms:host=$host;dbname=$dbName";20

21 try{22 $pdo = new PDO($dsn, $userName, $psw);23 $query = "insert into t_json(json) VALUES (:jsonId)";//sql语句24 $request = $pdo->prepare($query);25 $request->bindParam(':jsonId', $jsonId);26 $res = $request->execute();//执行sql语句27 print_r($res);28

29 if(!empty($res)){30 echo "json数据添加成功!!!!";31 }else{32 echo "json数据添加失败!!!!";33 }34

35 } catch (Exception $e) {36 die("error!");37 }38 ?>

就这么简单。

第二,将数据库中的json代码解析出来,这个我在做的时候遇到了很多麻烦,其实经过查资料,发现问题很容易解决。问题就是json解析不出来,解决的办法是遍历一下就可以了。

具体的代码如下:

1 <?php2 $dbms = "mysql";//选择数据库类型,MySQL

3 $host = "127.0.0.1"; //选择服务器

4 $userName = "";//用户名

5 $psw = "";6 $dbName = "dbtext";//数据库名称

7 $dsn = "$dbms:host=$host;dbname=$dbName";8 $arrjson = array();9 try{10 $pdo = new PDO($dsn, $userName, $psw);11 $query = "select * from t_json";12 $request = $pdo->query($query);13 $request->execute();14 $res = $request->fetchAll(PDO::FETCH_ASSOC);15 for ($i=0;$i

16

17

<?php echo $res[$i]['id']?>

18

<?php $obj=json_decode($res[$i]['json']);echo "编码".$obj->userid;echo " 等级".$obj->userclass ?>

19

20 <?php }21

22 } catch (Exception $e) {23 die("error".$e->getMessage());24 }25 ?>

在上面的代码中的第18行就是解析json。

自php5.2开始及之后的版本都内置了json的支持,主要有两个函数:

json_encode():编码,生成一个json字符串

json_decode():一个解码

大家可以到下面的链接下载源码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值