2015-11-23 62 views
1

嘿,我是iOS開發人員我想從我的網站創建簡單的JSON輸出。我發現很好的開始link,這裏是一些解釋如何做到這一點。基於數據庫生成簡單的JSON文件

所以我accounts.php文件中創建並把它放到我的public_html文件夾

<?php 

include_once("JSON.php"); 
$json = new Services_JSON(); 

$link = mysql_pconnect("localhost", "user", "pass") or die("Could not connect"); 
mysql_select_db("iglobe") or die("Could not select database"); 

$arr = array(); 

$rs = mysql_query("SELECT * FROM users"); 
while($obj = mysql_fetch_object($rs)) { 
    $arr[] = $obj; 
} 

Echo $json->encode($arr); 

?> 

當然,我用我的用戶名和密碼和我指出我剛剛創建的數據庫OB我的結束。

所以當我嘗試請求我的文件,所以http // mywebsite.com/accounts.php沒有數據。

我試圖使用谷歌瀏覽器和郵差,所以它說,當我切換到JSON沒有收到響應。對於HTML,Postman中沒有信息。

我的問題我該如何測試它?即使我在include_once(「JSON.php」)之前使用Echo(123)行在html頁面上沒有123。

我試着用只有這個代碼來測試PHP:

<?php 
    phpinfo(); 
    ?> 

和它的作品。我有PHP版本5.4.32

+0

我覺得你的代碼崩潰到達回聲之前...如果你沒有看到123 – Ljubisa

+1

開啓所有調試選項:'display_errors'和'error_reporting'。如果沒有別的,即使查詢完全禁止,你應該得到一個空的json編碼數組:'[]'。既然你不是,那麼腳本會在echo語句之前保存下來。 –

+0

在每個命令之後添加回顯並查看它在哪裏中斷..所以一個在$ link之前,一個在$ rs之前一個 – Ljubisa

回答

2

首先,簡單地使用PHP的函數json_encode($arr)。它完全符合你的要求,幾乎包含在我能想到的每個PHP版本中。

Documentation

而且,我不知道這是否是問題,但你可能要更改Echo==>echo。這至少是一般慣例。

SUPER重要

最後,請不要使用mysql擴展。它很危險,可能無法正常工作,並且存在安全漏洞。使用mysqliPDO

0

Matrosov -

你非常接近。使用json_encode函數通過PHP手冊輸出您的代碼。另外考慮使用mysqli而不是mysql來進行數據庫連接,因爲它更好地支持現代MySQL服務器。

http://php.net/manual/en/function.json-encode.php

http://php.net/manual/en/book.mysqli.php

<?php 

    include_once("JSON.php"); 

    $link = mysqli_connect("localhost", "user", "pass") or die("Could not connect"); 
    $link->mysql_select_db("iglobe") or die("Could not select database"); 

    $arr = array(); 

    $rs = mysql_query("SELECT * FROM users"); 
    while($obj = mysql_fetch_object($rs)) { 
     $arr[] = $obj; 
    } 

    echo json_encode($arr); 

    ?>