2015-11-23 35 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); 

    ?>