2017-08-01 14 views
0

ローカルデータベースからデータを取得するには単純なWebサービスが必要ですが、テストサーバから実際のサーバにファイルを移動したときに空のページが 'null'左上隅。 私のPHPコードは非常に単純です:私のサーバは角が空白のページを返します

<?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は、バージョンが5.4以上のPHPでのみ利用可能です。これは、値が128であるのですので、エンコード前$jsonを印刷しようと、一度確認するためにも)

2をデバッグするためにページの上部にだけエラー報告に128

でJSON_PRETTY_PRINTを交換してみて

3)コメントに記載されているように、実際にデータを取得しているときにのみエンコードします。

!empty($json){ 
header('Content-type: application/json'); 
echo json_encode($json, JSON_PRETTY_PRINT); 
} 
関連する問題