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 ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=18
ROW_FORMAT=COMPACT
;

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

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

 1 <form action="json.php" method="post">
 2             <table>
 3                 <tr>
 4                     <td>id:</td>
 5                     <td>
 6                         <input type="text" name="userid">
 7                     </td>
 8                 </tr>
 9                 <tr>
10                     <td>class:</td>
11                     <td>
12                         <input type="text" name="userclass">
13                     </td>
14                 </tr>
15                 <tr>
16                     <td></td>
17                     <td>
18                         <input type="submit" value="提交">
19                     </td>
20                 </tr>
21             </table>
22         </form>

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

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

 1 <?php
 2     @$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."<br>";
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  <?php 
 2                 $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<count($res);$i++){?>
16                         <tr>
17                             <td><?php echo $res[$i]['id']?></td>
18                             <td><?php $obj=json_decode($res[$i]['json']);echo "编码".$obj->userid;echo " 等级".$obj->userclass ?></td>
19                         </tr>
20                 <?php }
21                    
22                 } catch (Exception $e) {
23                     die("error".$e->getMessage());
24                 }
25             ?> 

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

自php5.2开始及之后的版本都内置了json的支持,主要有两个函数:
        json_encode():编码,生成一个json字符串
        json_decode():一个解码

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

http://pan.baidu.com/s/1bnwHjzT

转载于:https://www.cnblogs.com/invban/p/4548334.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较常见的前后端交互的问题。首先,你需要在 Vue 获取到前端传递过来的数据,然后将其发送到后端 PHP 接口。在 PHP 接口,你需要解析前端传递过来的数据,并将其插入数据库。 下面是一个简单的实现过程: 1. Vue 将数据传递到 PHP 接口 在 Vue ,你可以使用 axios 库来发送请求。首先,你需要将要插入数据库的数据转换为 JSON 字符串,然后将其作为请求体发送到 PHP 接口。 ```javascript // 将数据转换为 JSON 字符串 const data = JSON.stringify({ field1: 'value1', field2: 'value2', field3: 'value3' }) // 发送 POST 请求到 PHP 接口 axios.post('/api/addData.php', data) .then(response => { console.log(response.data) }) .catch(error => { console.log(error) }) ``` 2. PHP 接口解析数据并插入数据库PHP 接口,你可以使用 $_POST 变量获取到前端传递过来的 JSON 字符串,并将其解析PHP 数组。然后,你可以使用 PHP数据库操作库(如 PDO)将数据插入数据库。 ```php // 获取前端传递过来的 JSON 字符串 $data = json_decode(file_get_contents('php://input'), true); // 插入数据到数据库 $conn = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $stmt = $conn->prepare('INSERT INTO table_name (field1, field2, field3) VALUES (:value1, :value2, :value3)'); $stmt->bindParam(':value1', $data['field1']); $stmt->bindParam(':value2', $data['field2']); $stmt->bindParam(':value3', $data['field3']); $stmt->execute(); ``` 注意,这只是一个简单的示例,你需要根据自己的实际情况来进行修改。另外,为了安全起见,你需要对前端传递过来的数据进行验证和过滤,以防止 SQL 注入等安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值