2012-05-10 16 views
0

私はかなりの時間この戦いをしてきました。私は5つの最大5つのテーブルを持つ6つのテーブルから最大15日間のデータを15日間引き出すサーバー上で簡単なPHPスクリプトを実行しています各列に20文字以上の列はありません。しかし何らかの理由でスクリプトが実行されるたびに、サーバーは560メガのRAMを使用するように報告しています。私のホストはいかなる責任も否定しているので、私は疑念の恩恵を与えて、私の尻尾を試して追いかけている。このスクリプト上の任意の提案や安心さをいただければ幸いです。..基本的なPHPスクリプトでサーバーメモリを最大化する

<?php 
$json = file_get_contents('php://input'); 
$data = json_decode($json); 
require_once('xxx'); 

$date = ""; 

if ($data === null) { 
    echo 'Invalid Access'; 
} else { 
    foreach ($data as $date) { 
    } 
    $tables = array('Seizures', 'medlist', 'Output', 'Feeds', 'HydKeto', 'MedLogs'); 
    global $dbc; 
    $rows = array(); 

    foreach ($tables as $table) { 
     if ($table != 'medlist') { 
      $query = "SELECT * FROM $table WHERE timestamp > '$date'"; 
     } else { 
      $query = "SELECT * FROM $table WHERE status!='dc'"; 
     } 
     $sth = mysqli_query($dbc, $query); 
     if ($sth != null) { 
      while($r = mysqli_fetch_assoc($sth)) { 
       $rows[$table][] = $r; 
      } 
     } 
    mysqli_free_result($sth); 
    } 
    echo json_encode($rows); 
} 
?> 
+0

このスクリプトの後に$行にどれくらいのデータがありますか? PS:あなたは 'UNION'を使って1つのクエリでそれを行うことができます – zerkms

+0

私はSQLの注入の可能性を参照してください。あなたはできる? – spender

+0

'php:// input'から何を取っていますか? –

答えて

0

が、これは正確にメモリをロギングない、cloudLinuxの問題でしたが判明します。私のホストは最終的にそれを認め、私の頭を壁に3ヶ月ぶつけた後にそれを固定しました。

関連する問題