PHP json的插入和解析在資料庫中的操作

來源:互聯網
上載者:User

標籤:

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=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciAUTO_INCREMENT=18ROW_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";//選擇資料庫類型,MySQL15     $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

PHP json的插入和解析在資料庫中的操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.