国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP連接MySQL數據庫并以json格式輸出

2019-11-07 22:46:03
字體:
來源:轉載
供稿:網友

php連接MySQL數據庫并以json格式輸出

標簽: phpmysqljson2015-07-14 11:19 980人閱讀 評論(0) 收藏 舉報 分類:   

1.簡介

PHP連接數據庫有多種方法,現介紹常用的MySQL數據庫連接方法,PHP連接MySQL也有兩種方式,一是面向對象,二是面向過程方式,兩種方法稍有區別。下面通過代碼介紹兩種方法連接MySQL并以json格式輸出。

2、面向對象方式

[php] view plain copy<?php  header("content-Type: text/html; charset=utf-8");//字符編碼設置  $servername = "localhost";  $username = "root";  $passWord = "123456";  $dbname = "mydb";    // 創建連接  $conn =new mysqli($servername, $username, $password, $dbname);  // 檢測連接  if ($conn->connect_error) {      die("Connection failed: " . $conn->connect_error);  }    $sql = "SELECT * FROM power WHERE DATE='2014-1-1'";  $result = $conn->query($sql);    $arr = array();  // 輸出每行數據  while($row = $result->fetch_assoc()) {      $count=count($row);//不能在循環語句中,由于每次刪除row數組長度都減小      for($i=0;$i<$count;$i++){          unset($row[$i]);//刪除冗余數據      }      array_push($arr,$row);    }  //PRint_r($arr);  echo json_encode($arr,JSON_UNESCAPED_UNICODE);//json編碼  $conn->close();    ?>  3.面向過程方式

[php] view plain copy<?php  header("content-Type: text/html; charset=utf-8");//字符編碼設置  $servername = "localhost";  $username = "root";  $password = "123456";  $dbname = "mydb";    // 創建連接  $con =mysqli_connect($servername, $username, $password, $dbname);  // 檢測連接  if (mysqli_connect_errno())  {      echo "Failed to connect to MySQL: " . mysqli_connect_error();  }    $sql = "SELECT * FROM power WHERE DATE='2014-1-1'";  $result = mysqli_query($con,$sql);    $arr = array();  while($row = mysqli_fetch_array($result)) {      $count=count($row);//不能在循環語句中,由于每次刪除 row數組長度都減小      for($i=0;$i<$count;$i++){          unset($row[$i]);//刪除冗余數據      }        array_push($arr,$row);    }  echo json_encode($arr,JSON_UNESCAPED_UNICODE);  mysqli_close($con);    ?>  4.輸出json示例

[javascript] view plain copy[{"NAME":"小區1","DM":"A","LNG":"564142.623","LAT":"4329376.169","DATE":"2014-1-1","VAL":"26.8"},{"NAME":"小區2","DM":"B","LNG":"563089.677","LAT":"4329311.017","DATE":"2014-1-1","VAL":"26.8"}]  5.json輸出說明

由于$row = mysqli_fetch_array($result)獲取數據的一行數據并以數組形式存儲,里邊除了字段和值鍵值對外默認還會有0,1,2……下標存在,如下所示

[Javascript] view plain copyArray ( [0] => 小區1 [NAME] => 小區1 [1] => A [DM] => A [2] => 564142.623 [LNG] => 564142.623 [3] => 4329376.169 [LAT] => 4329376.169 [4] => 2014-1-1 [DATE] => 2014-1-1 [5] => 26.8 [VAL] => 26.8 )   如此數據就出現冗余,unset方法則是刪除數組冗余數據,之后再添加到$arr數組中。

另外在json編碼中json_encode($arr);會出現中文被unicode編碼,php5.3加入了options參數, 5.4以后才加入JSON_UNESCAPED_UNICODE,這個參數,不需要做escape和unicode處理。所以在5.4之前都需要對中文做個處理 。5.4里面直接補上代碼中的參數即可。

整理網上的方法,5.4之前處理方法有兩種,方法1:在實際應用中有個問題,部分字符會掉,原因暫不清楚。

[php] view plain copyfunction encode_json($arr){      $code = json_encode($arr);      return preg_replace("#///u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '//1'))", $code);  }  

方法2:先對需要處理的做urlencode處理,然后json_encode,最后做urldecode處理 

[php] view plain copyfunction encode_json($str) {      return urldecode(json_encode(url_encode($str)));      }    /**  *   */  function url_encode($str) {      if(is_array($str)) {          foreach($str as $key=>$value) {              $str[urlencode($key)] = url_encode($value);          }      } else {          $str = urlencode($str);      }            return $str;  }  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 萍乡市| 郑州市| 平舆县| 乌审旗| 都匀市| 卓资县| 九江市| 安仁县| 怀集县| 芷江| 高密市| 庆云县| 虞城县| 江阴市| 合水县| 天柱县| 澄江县| 焦作市| 东宁县| 昭苏县| 榕江县| 怀安县| 长宁县| 抚顺市| 淮滨县| 襄城县| 孝感市| 荔浦县| 德钦县| 中西区| 桃园市| 益阳市| 田林县| 嘉荫县| 平潭县| 滦南县| 安宁市| 眉山市| 玉门市| 通州区| 通州区|