PHP 以 JSON 回傳格式化訊息
相信PHP和MYSQL這兩個東西大家一定不陌生,而這兩樣搭配在一起就可以建立一個很輕巧方便的伺服器(多半都是配合Apache),在很多作業系統上都直接有軟體可以一次安裝完,例如: Windows - Appserv 、 XAMPP Linux - LAMP Mac - MAMP 、 XAMPP (其實系統有內建,教學可以參考 這裡 ) 而因為前陣子五月初時去比賽,久違的又寫起了PHP、以及最近在教一些學生做專題時也有用到,所以重新審視一下以前寫的一些專案和網頁,有了點感觸。 我專案的做法大多都是用PHP將資料庫輸出為JSON格式,方便網頁以AJAX或是APP的HttpRequest取用,所以無論是對資料庫的查詢、新增、修改還是刪除,都靠PHP執行後並回傳結果。執行畫面例如: 其實這樣的內容可能有點難看懂,JSON格式解析之後如下: (解析方法可以看 這裡 ,解析JSON的工具則是 這個 ) 那會看JSON格式之後,我們就可以繼續往下探討了。正如我前面所說是PHP輸出的資料,所以其實要輸出成怎樣的格式都是看開發者,我們先來看看我以前的程式碼: 看完上面的程式碼可以理解到,程式執行狀態分別為: SQL語法執行成功 且 資料數>0 -> 回傳查詢內容 SQL語法執行有誤 或 資料數=0 -> 回傳 0 摁,所以可以從上述判斷如果整個網頁的回傳值若是0,代表一定是沒有輸出資料的,但問題來了,像最剛開始說的我們是用AJAX 或 HttpRequest去處理取得資料的這件事,而這類型的方法只要你不特別去寫是 不會將收到的內容顯示出來 的。因為這類型的方法通常都是預設你收到資料後應該要經過處理在輸出,例如像你收到的是JSON格式的資料,就必須要經過解析,取出欄位中的值,而不是直接Print出來。 那麼,如果SQL語法執行有誤該怎麼辦? 這時候呢一般作法應該都是把回傳 0 改為回傳錯誤,但是那你又要怎麼判斷是資料內容還是錯誤訊息呢?如果查詢的內容是數筆資料並用陣列的方式呈現,是可以判斷陣列存不存在,如果不是再顯示錯誤訊息等等之類的,那麼這個很麻煩,也只能說...