2017-08-01 70 views
0

我需要简单的Web服务来从本地数据库获取数据,但是当我将文件从测试服务器移动到实际服务器时,我只是收到空白页左上角。 我的PHP代码非常简单:我的服务器返回空白页在角落'null'

<?php 
// Include config 
require_once 'config/db.php'; 
$sql = new db(); 
$conn = $sql->connect(); 

$task = isset($_GET['task']) ? mysql_real_escape_string($_GET['task']) : ""; 

if(!empty($task)) 
{ 
    if($task === "totals") 
    { 
     $qur = mysql_query("working query - no problem here;"); 
     $result =array(); 
     while($r = mysql_fetch_array($qur)) 
     { 
      extract($r); 
      $result[] = array("total_value" => $total_value, 'orders_date' => $orders_date, 'number_of_orders' => $number_of_orders); 
     } 
     $json = $result; 
    } 
} 

@mysql_close($conn); 

/* Output header */ 
header('Content-type: application/json'); 
echo json_encode($json, JSON_PRETTY_PRINT); 
?> 

这里是db.php中代码:

<?php 
class db 
{ 
    // Properties 
    private $dbhost = 'ip-address'; 
    private $dbuser = 'xxx'; 
    private $dbpass = 'yyy'; 
    private $dbname = 'zzz'; 
    // Connect 
    public function connect() 
    { 
     $conn = mysql_connect($this->dbhost, $this->dbuser, $this->dbpass); 
     mysql_select_db($this->dbname, $conn); 
    } 
} 
?> 
+0

mysql函数折旧。改用mysqli函数。还查找参数化查询以避免SQL注入。 –

+0

我认为这行'''echo json_encode ...'''什么是生成页面上的“null”。当你查看源代码时,你看到了这一切吗? –

+0

打开错误报告并查看正在生成的错误以及代码中的位置。 –

回答

0

可能Json_encode没有给予正确的答案。

1)另请确保JSON_PRETTY_PRINT仅适用于PHP版本> = 5.4。它的值是128,所以尝试在页面顶部只是在错误报告用128

更换JSON_PRETTY_PRINT调试

2)此外,以确保一次尝试在编码之前打印$json

3)正如评论中所提到的,只是在您实际获取数据时才进行编码

!empty($json){ 
header('Content-type: application/json'); 
echo json_encode($json, JSON_PRETTY_PRINT); 
}