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

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

PHP連接MySQL數(shù)據(jù)庫(kù)并以json格式輸出的相關(guān)講解

2020-03-22 17:23:44
字體:
供稿:網(wǎng)友
PHP連接數(shù)據(jù)庫(kù)有多種方法,現(xiàn)介紹常用的html' target='_blank'>MySQL數(shù)據(jù)庫(kù)連接方法,PHP連接MySQL也有兩種方式,一是面向?qū)ο?/u>,二是面向過程方式,兩種方法稍有區(qū)別。下面通過代碼介紹兩種方法連接MySQL并以json格式輸出

1.簡(jiǎn)介

PHP連接數(shù)據(jù)庫(kù)有多種方法,現(xiàn)介紹常用的MySQL數(shù)據(jù)庫(kù)連接方法,PHP連接MySQL也有兩種方式,一是面向?qū)ο螅敲嫦蜻^程方式,兩種方法稍有區(qū)別。下面通過代碼介紹兩種方法連接MySQL并以json格式輸出。

2、面向?qū)ο蠓绞?/p>

 ?php header( content-Type: text/html; charset=utf-8 //字符編碼設(shè)置 $servername = localhost $username = root $password = 123456 $dbname = mydb // 創(chuàng)建連接 $conn =new mysqli($servername, $username, $password, $dbname); // 檢測(cè)連接 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(); // 輸出每行數(shù)據(jù) while($row = $result- fetch_assoc()) {  $count=count($row);//不能在循環(huán)語句中,由于每次刪除row數(shù)組長(zhǎng)度都減小  for($i=0;$i $count;$i++){  unset($row[$i]);//刪除冗余數(shù)據(jù)  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 //字符編碼設(shè)置 $servername = localhost $username = root $password = 123456 $dbname = mydb // 創(chuàng)建連接 $con =mysqli_connect($servername, $username, $password, $dbname); // 檢測(cè)連接 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);//不能在循環(huán)語句中,由于每次刪除 row數(shù)組長(zhǎng)度都減小  for($i=0;$i $count;$i++){  unset($row[$i]);//刪除冗余數(shù)據(jù)  array_push($arr,$row); echo json_encode($arr,JSON_UNESCAPED_UNICODE); mysqli_close($con); ? 

4.輸出json示例

[{ NAME : 小區(qū)1 , DM : A , LNG : 564142.623 , LAT : 4329376.169 , DATE : 2014-1-1 , VAL : 26.8 },{ NAME : 小區(qū)2 , DM : B , LNG : 563089.677 , LAT : 4329311.017 , DATE : 2014-1-1 , VAL : 26.8 }]

5.json輸出說明

由于$row = mysqli_fetch_array($result)獲取數(shù)據(jù)的一行數(shù)據(jù)并以數(shù)組形式存儲(chǔ),里邊除了字段和值鍵值對(duì)外默認(rèn)還會(huì)有0,1,2……下標(biāo)存在,如下所示

Array ( [0] = 小區(qū)1 [NAME] = 小區(qū)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 )

如此數(shù)據(jù)就出現(xiàn)冗余,unset方法則是刪除數(shù)組冗余數(shù)據(jù),之后再添加到$arr數(shù)組中。
另外在json編碼中json_encode($arr);會(huì)出現(xiàn)中文被unicode編碼,php5.3加入了options參數(shù), 5.4以后才加入JSON_UNESCAPED_UNICODE,這個(gè)參數(shù),不需要做escape和unicode處理。所以在5.4之前都需要對(duì)中文做個(gè)處理 。5.4里面直接補(bǔ)上代碼中的參數(shù)即可。

整理網(wǎng)上的方法,5.4之前處理方法有兩種,方法1:在實(shí)際應(yīng)用中有個(gè)問題,部分字符會(huì)掉,原因暫不清楚。

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:先對(duì)需要處理的做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數(shù)據(jù)庫(kù)的常用方法(面向?qū)ο蠛兔嫦蜻^程)

相信開始學(xué)習(xí)PHP的伙伴們用的都是php4,或者php5,在這些版本中都有一個(gè)連接數(shù)據(jù)庫(kù)的函數(shù)mysql_connect(),但在使用php5.5及5.5以上版本時(shí),你會(huì)發(fā)現(xiàn)使用mysql_connect()會(huì)直接報(bào)錯(cuò),這是因?yàn)閜hp5.5以后的版本考慮到未來的可移植性和安全性,性能而廢棄了mysql_connect()函數(shù),所以我們只能使用mysqli_connect()和PDO,這里我說一下mysqli_connect()。

mysqli_connect()的兩種方式,面向過程和面向?qū)ο蟮倪B接數(shù)據(jù)庫(kù)方法。

(1)面向過程連接數(shù)據(jù)庫(kù):

 !-- 面向過程的數(shù)據(jù)庫(kù)mysqli連接 --  ?php  $conn=mysqli_connect( localhost , root , 950609 , user  // 連接數(shù)據(jù)庫(kù)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);  // 執(zhí)行sql語句,將執(zhí)行結(jié)果返回到結(jié)果集中  $row=mysqli_fetch_array($result);  // 從結(jié)果集中取得一行作為數(shù)組  echo pre  print_r($row); ? 

(2)面向?qū)ο蟮臄?shù)據(jù)庫(kù)連接

 !-- 面向?qū)ο蟮臄?shù)據(jù)庫(kù)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(); // 從結(jié)果集中取得一行作為數(shù)組  echo pre  print_r($row);  /* free result set */  $result- free();  /* close connection */  $mysqli- close();  

這篇文章就介紹到這了,關(guān)于PHP連接MySQL數(shù)據(jù)庫(kù)并以json格式輸出的實(shí)現(xiàn)代碼,需要的朋友可以參考一下。

您可能感興趣的文章:

PHP自動(dòng)識(shí)別當(dāng)前使用移動(dòng)終端de 相關(guān)講

PhpStorm本地?cái)帱c(diǎn)調(diào)試的方法

PHP+MariaDB數(shù)據(jù)庫(kù)操作基本技巧

以上就是PHP連接MySQL數(shù)據(jù)庫(kù)并以json格式輸出的相關(guān)講解的詳細(xì)內(nèi)容,PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 康马县| 唐山市| 黄龙县| 莆田市| 五常市| 密山市| 福贡县| 临西县| 准格尔旗| 长治县| 防城港市| 清远市| 凤山县| 安丘市| 武安市| 瑞昌市| 阿拉善盟| 衡东县| 南乐县| 依安县| 剑阁县| 虎林市| 汉寿县| 河池市| 六枝特区| 济阳县| 额济纳旗| 潍坊市| 邯郸县| 黑龙江省| 宜章县| 茂名市| 天气| 柯坪县| 西丰县| 昭平县| 涟水县| 读书| 昌吉市| 岢岚县| 阳泉市|