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

首頁 > 語言 > PHP > 正文

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

2024-05-05 00:03:46
字體:
來源:轉載
供稿:網友

1.簡介

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

2、面向對象方式

<?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 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示例

[{"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……下標存在,如下所示

Array ( [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:在實際應用中有個問題,部分字符會掉,原因暫不清楚。

function 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處理

function 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; } 

mysqli連接mysql數據庫的常用方法(面向對象和面向過程)

相信開始學習PHP的伙伴們用的都是php4,或者php5,在這些版本中都有一個連接數據庫的函數mysql_connect(),但在使用php5.5及5.5以上版本時,你會發現使用mysql_connect()會直接報錯,這是因為php5.5以后的版本考慮到未來的可移植性和安全性,性能而廢棄了mysql_connect()函數,所以我們只能使用mysqli_connect()和PDO,這里我說一下mysqli_connect()。

mysqli_connect()的兩種方式,面向過程和面向對象的連接數據庫方法。

(1)面向過程連接數據庫:

<!-- 面向過程的數據庫mysqli連接 --> <?php   $conn=mysqli_connect("localhost","root","950609","user");   // 連接數據庫user   if (!$conn) {     # code...判斷鏈接是否成功     echo "連接失敗!";     echo mysqli_connect_error();     exit();   }   mysqli_query($conn,"set names utf8");   // 指定編碼格式   $sql="select * from goods";   // sql語句   $result=mysqli_query($conn,$sql);   // 執行sql語句,將執行結果返回到結果集中   $row=mysqli_fetch_array($result);   // 從結果集中取得一行作為數組   echo "<pre>";   print_r($row); ?> 

(2)面向對象的數據庫連接

<!-- 面向對象的數據庫mysqli連接 --> lt;?php $mysqli=new mysqli("localhost","root","950609","user"); if ( $mysqli -> connect_error ) {   die( 'Connect Error (' . $mysqli -> connect_errno . ') '       . $mysqli -> connect_error ); } $sql = "select * from goods";   $mysqli->set_charset("utf8");    $result = $mysqli->query($sql);    $row = $result->fetch_array(); // 從結果集中取得一行作為數組    echo '<pre>';   print_r($row);    /* free result set */    $result->free();    /* close connection */    $mysqli->close();  > 

這篇文章就介紹到這了,關于PHP連接MySQL數據庫并以json格式輸出的實現代碼,需要的朋友可以參考一下。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 恭城| 阿拉尔市| 驻马店市| 漯河市| 隆德县| 瓦房店市| 吉水县| 孟连| 荥经县| 海安县| 合阳县| 九龙县| 富阳市| 安多县| 长宁区| 石首市| 松潘县| 通城县| 镇远县| 左权县| 黎城县| 科技| 永平县| 赤壁市| 瓦房店市| 巴东县| 县级市| 新乐市| 财经| 搜索| 南昌市| 澄迈县| 内乡县| 长乐市| 宁南县| 贵定县| 临江市| 尼木县| 灯塔市| 康定县| 柞水县|