天天看點

PHP PDO讀取MariaDB資料轉換為jsonpdo讀取的資料轉換json參考

pdo讀取的資料

pdo查詢傳回的是對象,直接輸出query是無法解析的。。隻會一行一行輸出

$query = c o n n − > q u e r y ( conn->query( conn−>query(sql)->fetchALL()傳回的是數組,直接輸出就是Array

$conn = new PDO("mysql:host=$dbhost;dbname=$dbname;charset=$charset", $dbuser, $dbpass);
 $sql = "SELECT * FROM $tbname";
 if ( $query = $conn->query($sql) )
 {
     echo "<p>編号  名稱 開始時間 結束時間</p>";
     foreach ($query as $row)
     {
         echo $row['activity_no'] .'      ' ;
         echo $row['activity_name'] .'      ' ;
         echo $row['activity_begin_time'] .'      ' ;
         echo $row['activity_end_time'] .'      ' ;
         echo $row['activity_location'] ;
         echo $row['activity_content'] . "<br>";
     }
   }
編号 名稱 開始時間 結束時間

1 雷雨 2020-06-12 20:59:56 2020-06-15 20:59:58
2 頭腦風暴 2020-06-12 21:01:04 2020-06-13 21:01:05
3 瑕積分
4 詩歌朗誦
6 最炫民族風 北極尬舞
           

轉換json

不知道為什麼就想起了這個格式,前端都喜歡這個哇。。。。

if ( $query = $conn->query($sql) )
{
   $result = json_encode($query->fetchAll());
   echo $result;
}
[{"activity_no":"1","0":"1","activity_name":"\u96f7\u96e8","1":"\u96f7\u96e8","activity_begin_time":"2020-06-12 20:59:56","2":"2020-06-12 20:59:56","activity_end_time":"2020-06-15 20:59:58","3":"2020-06-15 20:59:58","activity_location":null,"4":null,"activity_content":null,"5":null},{"activity_no":"2","0":"2","activity_name":"\u5934\u8111\u98ce\u66b4","1":"\u5934\u8111\u98ce\u66b4","activity_begin_time":"2020-06-12 21:01:04","2":"2020-06-12 21:01:04","activity_end_time":"2020-06-13 21:01:05","3":"2020-06-13 21:01:05","activity_location":null,"4":null,"activity_content":null,"5":null},{"activity_no":"3","0":"3","activity_name":"\u7455\u79ef\u5206","1":"\u7455\u79ef\u5206","activity_begin_time":null,"2":null,"activity_end_time":null,"3":null,"activity_location":null,"4":null,"activity_content":null,"5":null},{"activity_no":"4","0":"4","activity_name":"\u8bd7\u6b4c\u6717\u8bf5","1":"\u8bd7\u6b4c\u6717\u8bf5","activity_begin_time":null,"2":null,"activity_end_time":null,"3":null,"activity_location":null,"4":null,"activity_content":null,"5":null},{"activity_no":"6","0":"6","activity_name":"\u6700\u70ab\u6c11\u65cf\u98ce","1":"\u6700\u70ab\u6c11\u65cf\u98ce","activity_begin_time":null,"2":null,"activity_end_time":null,"3":null,"activity_location":"\u5317\u6781","4":"\u5317\u6781","activity_content":"\u5c2c\u821e","5":"\u5c2c\u821e"}]
           

但是仔細一看不僅輸出了預設的鍵-值對,還多出了預設的數字下标-值對,emm那肯定要把其中一個去掉哇,這裡去掉後面的

if ( $query = $conn->query($sql) )
{
   $result = json_encode($query->fetchAll(PDO::FETCH_ASSOC));
   echo $result;
}
[{"activity_no":"1","activity_name":"\u96f7\u96e8","activity_begin_time":"2020-06-12 20:59:56","activity_end_time":"2020-06-15 20:59:58","activity_location":null,"activity_content":null},{"activity_no":"2","activity_name":"\u5934\u8111\u98ce\u66b4","activity_begin_time":"2020-06-12 21:01:04","activity_end_time":"2020-06-13 21:01:05","activity_location":null,"activity_content":null},{"activity_no":"3","activity_name":"\u7455\u79ef\u5206","activity_begin_time":null,"activity_end_time":null,"activity_location":null,"activity_content":null},{"activity_no":"4","activity_name":"\u8bd7\u6b4c\u6717\u8bf5","activity_begin_time":null,"activity_end_time":null,"activity_location":null,"activity_content":null},{"activity_no":"6","activity_name":"\u6700\u70ab\u6c11\u65cf\u98ce","activity_begin_time":null,"activity_end_time":null,"activity_location":"\u5317\u6781","activity_content":"\u5c2c\u821e"}]
           

參考

  • https://blog.csdn.net/weixin_30469895/article/details/95589933