PHP json的插入和解析在数据库中的操作
2015-06-03 09:41
731 查看
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
PHP中往数据库中存储json数据在项目开发中也经常遇到,下面我就写个往数据库中存储json的例子。
在PHP操作数据库当中,将json数据存入数据库中,还得把这个数据从数据库中解析出来。说实在的,我也不知道这个有什么作用,但是我觉得反正是技术上的东西,总是有用的。
仁者见仁,智者见智。php到现在为止学了有一个半星期吧,不足之处,往大家指正,非常的感谢。
还是先建库:在mysql下建库,代码如下:
就两个字段,一个是 id,一个是json。
一、假设建一个页面,命名为input.php,具体代码如下:
action到json.php界面,method方法是post方法。
在json.php界面中,代码如下:
就这么简单。
第二,将数据库中的json代码解析出来,这个我在做的时候遇到了很多麻烦,其实经过查资料,发现问题很容易解决。问题就是json解析不出来,解决的办法是遍历一下就可以了。
具体的代码如下:
在上面的代码中的第18行就是解析json。
自php5.2开始及之后的版本都内置了json的支持,主要有两个函数:
json_encode():编码,生成一个json字符串
json_decode():一个解码
大家可以到下面的链接下载源码:
http://pan.baidu.com/s/1bnwHjzT
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 , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=18 ROW_FORMAT=COMPACT ;
就两个字段,一个是 id,一个是json。
一、假设建一个页面,命名为input.php,具体代码如下:
<form action="json.php" method="post"> <table> <tr> <td>id:</td> <td> <input type="text" name="userid"> </td> </tr> <tr> <td>class:</td> <td> <input type="text" name="userclass"> </td> </tr> <tr> <td></td> <td> <input type="submit" value="提交"> </td> </tr> </table> </form>
action到json.php界面,method方法是post方法。
在json.php界面中,代码如下:
<?php @$id = $_POST['userid']; @$class = $_POST['userclass']; $array = array( 'userid'=>$id, 'userclass'=>$class, ); $jsonId = json_encode($array);//将array数组变成json数据 //$jsonId = addslashes($jsonId); echo $jsonId."<br>"; print_r($array); $dbms = "mysql";//选择数据库类型,MySQL $host = "127.0.0.1"; //选择服务器 $userName = "";//用户名 $psw = ""; $dbName = "dbtext";//数据库名称 $dsn = "$dbms:host=$host;dbname=$dbName"; try { $pdo = new PDO($dsn, $userName, $psw); $query = "insert into t_json(json) VALUES (:jsonId)";//sql语句 $request = $pdo->prepare($query); $request->bindParam(':jsonId', $jsonId); $res = $request->execute();//执行sql语句 print_r($res); if(!empty($res)){ echo "json数据添加成功!!!!"; }else{ echo "json数据添加失败!!!!"; } } catch (Exception $e) { die("error!"); } ?>
就这么简单。
第二,将数据库中的json代码解析出来,这个我在做的时候遇到了很多麻烦,其实经过查资料,发现问题很容易解决。问题就是json解析不出来,解决的办法是遍历一下就可以了。
具体的代码如下:
<?php $dbms = "mysql";//选择数据库类型,MySQL $host = "127.0.0.1"; //选择服务器 $userName = "";//用户名 $psw = ""; $dbName = "dbtext";//数据库名称 $dsn = "$dbms:host=$host;dbname=$dbName"; $arrjson = array(); try { $pdo = new PDO($dsn, $userName, $psw); $query = "select * from t_json"; $request = $pdo->query($query); $request->execute(); $res = $request->fetchAll(PDO::FETCH_ASSOC); for ($i=0;$i<count($res);$i++){?> <tr> <td><?php echo $res[$i]['id']?></td> <td><?php $obj=json_decode($res[$i]['json']);echo "编码".$obj->userid;echo " 等级".$obj->userclass ?></td> </tr> <?php } } catch (Exception $e) { die("error".$e->getMessage()); } ?>
在上面的代码中的第18行就是解析json。
自php5.2开始及之后的版本都内置了json的支持,主要有两个函数:
json_encode():编码,生成一个json字符串
json_decode():一个解码
大家可以到下面的链接下载源码:
http://pan.baidu.com/s/1bnwHjzT
相关文章推荐
- php json 中文乱码
- PHP获取表单所有复选框的值的方法
- Yii2 和Yii1 视频教程
- php 开发工具
- PHP高级特性一之正则表达式用法
- 使用PHP制作 简易员工管理系统之五(分页显示用户信息)
- phpExcel用法
- ftps
- php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
- php 类自动载入的方法
- php实现将上传word文件转为html的方法
- PHP设计模式之访问者模式
- 服务器php环境:安装wdcp,以及升级到php5.4
- PHP实现的一个简单的数据库操作类
- php约瑟夫环
- PHP实现函数重载
- php 魔术方法
- Yii CDbCriteria
- Yii 框架里数据库操作详解
- yii 标签用法(模板)